map <int, char*> testmap;
testmap[1] = "123";
testmap[2] = "007";
map<int, char*>::iterator p;
for(p = my_map.begin(); p != my_map.end(); p++) {
int len = strlen(p); // error here, why? thanks
cout << len << endl;
cout << p->first << " : ";
cout << p->second << endl;
}
我得到了這個謊言的錯誤:int len = strlen(p),我想獲得數組的length.how修復它? 謝謝!C++,迭代器問題
你可能想要使用const size_t len = strlen(p.second);而不是 – stijn 2011-02-01 16:10:06
使用`string`! – 2011-02-01 16:15:38
除了避免警告,因爲stijn建議考慮使用const_iterator,前綴increment ++ p,併爲性能和樣式點在循環外部分配end()。 – AJG85 2011-02-01 16:22:53