作者:一鳞半爪恋歌 | 来源:互联网 | 2023-01-28 19:05
我试着运行以下代码:
std::map m;
m[ "one" ] = "0";
m[ "two" ] = "1";
m[ "three" ] = "2";
m[ "four" ] = "3";
auto it = m.begin();
std::cout <first <<"\n";
输出是:"four"
.但为什么从头到尾呢?我被期待了"one"
!
1> Edgar Rokjān..:
原因是std :: map是一个已排序的容器.它根据键来对其元素进行排序,这些键是键值对,在特定情况下是std :: string.
然后,字符串按字典顺序相互比较.由于字符串four
是所有字符串中最小的字符串,因此该对("4","3")成为第一对.因此begin()
返回指向此对的迭代器.