В последнее время я работаю над школьным проектом, и нас познакомили с Векторами. Я еще не полностью освоил его, но мое общее представление о них заключается в том, что векторы во многом похожи на двумерные массивы, которые могут хранить различные типы данных. Ниже приведен код, но я получаю следующую ошибку:
нет экземпляра конструктора "std :: vector <_Ty, _Allo c> :: vector [with _Ty = std :: vector , _Alloc = std :: allocator >] "
Я не совсем уверен, где именно я ошибаюсь, но вот объявление функции и мой код.
//EFFECTS: returns a summary of the dataset as (value, frequency) pairs
// In the returned vector-of-vectors, the inner vector is a (value, frequency)
// pair. The outer vector contains many of these pairs. The pairs should be
// sorted by value.
// {
// {1, 2},
// {2, 3},
// {17, 1}
// }
//
// This means that the value 1 occurred twice, the value 2 occurred 3 times,
// and the value 17 occurred once
std::vector<std::vector<double> > summarize(std::vector<double> v);
Мой код:
vector<vector<double> > summarize(vector<double> v) {
sort(v); //Sorts vector by values, rearranging from smallest to biggest.
double currentVal = v[0];
int count = 0;
vector<pair<double,int>>vout = { {} };
for (size_t i = 0; i < v.size(); i++) {
if (v[i] == currentVal) {
count++;
}
else {
vout.emplace_back(make_pair(currentVal, count));
currentVal = i;
count = 1;
}
}
vout.emplace_back(make_pair(currentVal, count));
return { {vout} }; //Error here
}
Я ценю вашу помощь и любые объяснения того, что я делаю здесь неправильно. Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.