我有一张地图,它以vector<int>
大小为 3 的 a 作为键,以一个字符串作为值。该映射包含大约 2000 个从文件中解析的条目。我需要检查向量 1 中的每个元素是否存在于向量 2 中。
int index;
map<vector<int>,string>::iterator i2;
for ( i2=my_map.begin() ; i2 != my_map.end(); i2++)
{
int id_cnt = (*i2).first.at(0);
int prev_cnt = (*i2).first.at(1);
for (index=0; index < my_map.size(); index++)
{
if (prev_cnt==id_cnt[index]) //error
{
//code to do something
}
}
cout << "hi" <<endl;
cout << (*i2).second << endl;
}
我得到的错误是:
“下标值不是数组、指针或向量。
一周以来我一直在研究 C++,但我什么都不懂!:(
编辑:
我有 4 列:
4 6 65 gdsg
6 1 64 sggg
1 2 34 wetw
7 4 25 wtwt
8 5 25 heyq
5 7 23 fheh
2 5 12 fetd
我必须检查第 1 列中的每个数字是否存在于第 2 列中。因此,对于第 1 列的第一个元素:第 2 列中存在 4。现在我取相应的第 3 列编号 (25) 并放置它在第 20 个元素下的 26 个字母的向量中。20th 因为我需要获取相应字符串的最后一个字符(wtwt)。T 是第 20 个字母。
我必须对第 1 列中的元素执行此过程。