Jav*_*ner 1 c++ dictionary iterator std
我试着运行以下代码:
std::map < std::string, std::string > m;
m[ "one" ] = "0";
m[ "two" ] = "1";
m[ "three" ] = "2";
m[ "four" ] = "3";
auto it = m.begin();
std::cout << it->first << "\n";
Run Code Online (Sandbox Code Playgroud)
输出是:"four".但为什么从头到尾呢?我被期待了"one"!
原因是std :: map是一个已排序的容器.它根据键来对其元素进行排序,这些键是键值对,在特定情况下是std :: string.
然后,字符串按字典顺序相互比较.由于字符串four是所有字符串中最小的字符串,因此该对("4","3")成为第一对.因此begin()返回指向此对的迭代器.
| 归档时间: |
|
| 查看次数: |
65 次 |
| 最近记录: |