【发布时间】:2019-03-06 04:52:58
【问题描述】:
我正在尝试编写一个代码来制作一个地图向量,通过拆分它来存储部分字符串。这段代码给出了很长的编译错误,我无法理解问题所在。问题在于初始化方式
#include <bits/stdc++.h>
using namespace std;
vector<string> split(string phrase, string delimiter){
vector<string> list;
string s = phrase;
size_t pos = 0;
string token;
while ((pos = s.find(delimiter)) != string::npos) {
token = s.substr(0, pos);
list.push_back(token);
s.erase(0, pos + delimiter.length());
}
list.push_back(s);
return list;
}
int main() {
string line = "tunilib;sebesta;prog lang;14";
vector<string> splitstring = split(line, ";");
vector< map<string,string,string,string> > elements;
map<string,string,string,string> element;
element["library"] = splitstring[0];
element["author"] = splitstring[1];
element["title"] = splitstring[2];
element["reservation"] = splitstring[3];
elements.push_back(element);
for(auto i:splitstring) cout<<i<<" ";
cout<<"success";
return 0;
}
【问题讨论】:
-
你希望
map<string,string,string,string>做什么? -
我想存储键值对并像字典一样添加到向量中
-
有一个名为
std::list的标准库容器,由于您将整个标准库与程序的前两行一起移植到全局命名空间中,因此您的变量会出现问题同名。 -
但事实并非如此,问题是由于 vector
标签: c++ dictionary vector initialization