【发布时间】:2014-08-27 01:56:12
【问题描述】:
我对 unordered_map 的默认构造函数有一些疑问。
代码如下:
unordered_map<int, bool> m;
cout <<boolalpha << m[0] << endl;
输出是真还是假?
我知道元素是使用其默认构造函数构造的,但映射的值是真还是假?这是未定义的行为吗?
在vs2013中,输出为false。
实际上,我想删除数组中的重复元素。我想这样解决问题:
int a[] = {1, 2, 3, 1, 2, 3, 4};
unordered_map<int, bool> m;
int j = 0;
for (int i = 0; i < 7; ++i)
{
if (!m[a[i]])
{
a[j++] = a[i];
m[a[i]] = true;
}
}
谢谢,非常感谢您的回答。
【问题讨论】:
标签: c++ c++11 unordered-map