у меня multimap<string,vector<int>,int> hello
.Я пытаюсь insert
значение hello
, но у меня появляется ошибка: No matching member function for call to 'insert'
Я думаю, что есть проблема с векторной частью, но я не могу понять, что именно,
#include <iostream>
#include <sstream>
#include <cstdlib>
#include <string>
#include <vector>
#include <map>
using namespace std;
void addSpace(string &gendata, string &target){
int size = static_cast<int>(gendata.length());
for (int i = 0; i < size; i++){
target += gendata[i];
// check i for (i < gendata.length() - 1) !!!
if (i < gendata.length() - 1 && isdigit(gendata[i]) && isalpha(gendata[i + 1])){
target += ' ';
}
}
}
std::vector<int> make_vector(int a, int b, int c, int d) {
std::vector<int> result;
result.push_back(a);
result.push_back(b);
result.push_back(c);
result.push_back(d);
return result;
}
int main(int argc, const char * argv[]) {
multimap<string,pair<string,int>> student;
multimap<string,vector<int>,int> hello;
multimap<string,pair<string,int>>::iterator itr;
string s, gendata, target, word, name, subject;
int mark=0, i=0;
target = "Aurora Physics 55 Lily Biology 81 Dylan Physics 62 Bella Physics 58 Jaxon Physics 85 Noah Chemistry 98 Jaxon Mathematics 54 Michael Chemistry 98 Charlotte Mathematics 92 Penelope Mathematics 95 Ellie Physics 93";
istringstream iss(target);
int count = 0;
while(iss >> word){
if(count == 0){
name = word;
count++;
}
else if (count == 1){
subject = word;
count++;
}else if (count == 2){
mark = stoi(word);
student.insert({name,{subject,mark}});
count = 0;
}
}
string rememberName;
int bio=0, phys=0, chem=0, maths=0, sum=0;
for (itr = student.begin() ; itr != student.end() ; itr++) {
bio=0; phys=0; chem=0; maths=0;
rememberName = itr->first;
while (rememberName == itr->first) {
if (itr->second.first == "Biology") {
bio = itr->second.second;
}else if(itr->second.first == "Physics"){
phys = itr->second.second;
}else if(itr->second.first == "Chemistry"){
chem = itr->second.second;
}else{
maths = itr->second.second;
}
itr++;
}
itr--;
sum = bio+phys+chem+maths;
// this is where I have a problem
hello.insert({rememberName,{make_vector(bio,phys,chem,maths)},sum});
}
}
Я бы хотел вставить вектор в hello
карту.