问题描述
- c++ map为什么 明明定义的是string ,item.first却是unsigned int
-
std::map > map;
std::vector v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
map["onesssss"] = v;for (const auto& temp:map) { //cout << temp.first<< endl; printf("%s", temp.first); for (auto& v : temp.second){ cout <<v<< endl; } } 断点调试这边temp.first的值是onessss,类型却是unsigned int,输出值是8[T1。注释掉的那行代码也会报错。小白求大神解答啊!
解决方案
item.first是一个指针,所以是unsigned int
解决方案二:
#if 1
#include
#include
#include
#include
using namespace std;
int main()
{
vector v;
map m;
v.push_back(1);
v.push_back(2);
v.push_back(3);
m["sdfsf"] = *v.begin();
map<char*, int>::iterator iter = m.begin();
for (; iter != m.end(); ++iter)
{
cout << iter->first << " " << iter->second << endl;
}
return 0;
}
#endif
这是我的代码.不知道你的代码没有粘贴完全还是...
时间: 2024-10-08 10:02:30