Я дал вектор < вектор>, и я должен поместить их всоздать Multimap <строку, вектор <string>>
std::multimap< string, vector<string> > subsetsMap;
с первой строки каждого кортежа как ключ и вектор в качестве значения. Вот моя функция:
void hashThem()
{
int i,j;
vector<string> temp;
string first;
for(i=0;i<subset_list.size();i++)
{
for(j=0;j<subset_list[i].size();j++)
temp.push_back(subset_list[i][j]);
first = temp[0];
subsetsMap.insert(pair<first,temp>);
temp.clear();
}
}
subset_list и subsetsMap объявлены глобально. Декларация subset_list является:
vector< vector<string> > subset_list;
который имеет данные, такие как:
цитрусовых, маргарин,
кофе, тропические фрукты,
цельное молоко, тропические фрукты,
сливочный сыр, мясные спредов,
сгущенное молоко, долговечный хлебобулочный продукт,
абразивный очиститель, масло и т. д.
Но при компиляции я получаю такие ошибки, как:
dm1.cpp: In function ‘void hashThem()’: dm1.cpp:124:26: error: the value of ‘first’ is not usable in a constant expression
subsetsMap.insert(pair); ^dm1.cpp:118:10: note: ‘first’ was not declared ‘constexpr’ string first; ^dm1.cpp:124:32: error: the value of ‘temp’ is not usable in a constant expression subsetsMap.insert(pair); ^dm1.cpp:117:17: note: ‘temp’ was not declared ‘constexpr’ vector temp; ^dm1.cpp:124:36: error: type/value mismatch at argument 1 in template parameter list for ‘template struct std::pair’ subsetsMap.insert(pair); ^dm1.cpp:124:36: error: expected a type, got ‘first’ dm1.cpp:124:36: error: type/value mismatch at argument 2 in template parameter list for ‘template struct std::pair’ dm1.cpp:124:36: error: expected a type, got ‘temp’
Есть что-то не так, что я делаю, но так как я не знаю много C++ и не смог найти релевантный результат Google, любая помощь будет оценена. ТИА
2-я один (одна с Const работал). Остальные два (т. Е. Make_pair и emplace не работают). Спасибо .. – shane
@Shane Мне бы очень хотелось увидеть этот день, когда люди перестали использовать такие расплывчатые (вы ** не можете ** получить более расплывчатые) заявления как _didn't work_ .. –
@shane Добро пожаловать ... что ваш компилятор ? –