map

  • Post author:
  • Post category:其他



一,有关map的操作


1,初始化操作

map<string, int> myMap;
myMap["messi"] = 1;
myMap["jams"] = 2;
myMap["jack"] = 3;


2,插入操作

pair<string, int> value("json", 4);
myMap.insert(value);


3,输出集合中的元素

for(map<string, int>::iterator iter = myMap.begin(); iter != myMap.end(); iter ++){
    cout<<"key : "<<iter->first<<endl;
    cout<<"value : "<<iter->second<<endl;
}


4,删除元素

//1,删除指定的键值
myMap.erase("jams");

//2,删除迭代器指向的元素
myMap.erase(myMap.begin());

//3,删除指定区间的元素
myMap.erase(myMap.begin(), myMap.end())


5,查找元素

//给定一个键值,如果查找成功函数返回指向这个元素的迭代器,否则返回end()
map<string, int>::iterator iter = myMap.find("messi");
if(iter != myMap.end()){
    cout<<"key : "<<iter->first<<endl;
    cout<<"value : "<<iter->second<<endl;
}


二,map容器的迭代器的特点


1,是否能通过迭代器改变容器中的元素

不能通过迭代器修改元素的键值,因为map元素的键值关系到map元素的排序规则,改变元素的键值将会破坏map的组织。但是可以通过迭代器修改元素的值。


2,插入或删除操作对迭代器的影响

对map进行元素的插入或删除操作时,操作之前的所有的迭代器,在操作完成之后都依然有效。被删除的那个元素的迭代器除外。



版权声明:本文为cloud323原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。