我尝试使用c ++ stl库。 我想将字符串向量转换为int,string的映射。
例如:一个看起来像这样的矢量:
const char *vinit[] = { "Sunday", "Monday", "Tuesday", "Wednesday" };
vector <string> v(vinit, end(vinit));
将转换为这样的地图:
map<int, string> map = {{ 1, "Sunday" },
{ 2, "Monday" },
{ 3, "Tuesday" },
{ 4, "Wednesday" } };
关键是我不能将任何循环和全局索引用作整数。
答案 0 :(得分:0)
[编辑]
您可以使用map::insert
:
const char *vinit[] = { "Sunday", "Monday", "Tuesday", "Wednesday" };
vector <string> v(vinit, end(vinit));
std::map<int,string> map;
for(int i = 0; i < v.size(); i++)
{
map.insert (std::pair<int,string>(i+1,v[i]));
}