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), я хочу получить длину массива. Как ее исправить? Спасибо!C++, итератор вопрос
Возможно, вы захотите использовать const size_t len = strlen (p.second); вместо – stijn
Используйте 'string'! –
В дополнение к предупреждению, поскольку stijn предлагает рассмотреть использование const_iterator, приращение приращения ++ p и назначение end() вне цикла для точек производительности и стиля. – AJG85