#include #include using namespace std; int main() { //使用map或者unordered_map时,应该include对应的库文件,注意它没有.h扩展。如#include . //当然也可以直接写#include 这个万能头文件 // unordered_map map;//map和unordered_map使用的方式完全相同 //map 有序,键值对。存入的按照键的顺序排序 //查找时用unordered_map更加高效 map map1;//给map类型命名时最好不要和类型名相同 //插入方法1 使用pair<> // map1.insert(pair(1,'a')); // map1.insert(pair(2,'b')); // map1.insert(pair(3,'c')); //插入方法2 使用value_type // map1.insert(unordered_map::value_type(1,'a')); // map1.insert(unordered_map::value_type(2,'b')); // map1.insert(unordered_map::value_type(3,'c')); //插入方式3 使用数组的方式 map1[2] = 'b'; map1[3] = 'c'; map1[1] = 'a'; //使用insert时,当键已经存在时就插入不了数据了。而使用数组的方式时,它可以覆盖之前的数据 //使用迭代器进行遍历。迭代器的第一个参数为键,第二个为值。并且使用 -> 的方式选择 //顺序迭代器的输出顺序和栈类似,后进先出 map::iterator iter; for(iter = map1.begin();iter!=map1.end();iter++)//begin()为第一个成员,end()为最后一个 { cout<first<<" : "<second<::reverse_iterator riter; for(riter = map1.rbegin(); riter != map1.rend(); riter++) cout<first<<" : "<second<::iterator iter1; // iter1 = map1.find(3);//注意find的使用方式 // if(iter1 != map1.end()) //注意该判断条件 // cout<<"Find, the value is "<second<::iterator iter1; // iter1 = map1.find(1); // map1.erase(iter1); int a = map1.erase(1); //直接关键字删除,成功返回1,失败返回0 //map全部清空 // map1.erase( map1.begin(), map1.end() ); map::iterator iter2; for(iter2 = map1.begin();iter2!=map1.end();iter2++)//begin()为第一个成员,end()为最后一个 { cout<first<<" : "<second<