STL学习(?map容器)
目录
一、构造与赋值
1.基本概念
2.构造和赋值
二、大小和交换
三、插入和删除
四、查找和统计
五、排序
一、构造与赋值
1.基本概念
所有元素会根据元素的键值自动排序
迭代器是双向迭代器,不是随机迭代器。
2.构造和赋值
函数原型
map<T1,T2> mp; // 默认构造
map(const map & mp) // 拷贝构造
赋值
map & operator=(const map &mp)
二、大小和交换
函数原型
size() // 返回容器中元素数目
empty() // 判断容器是否为空
swap(st) // 交换两容器元素
#include<iostream>
#include<map>
using namespace std;
void test1()
{map<int, int> m;m.insert(pair<int, int>(1, 1));m.insert(pair<int, int>(2, 2));m.insert(pair<int, int>(4, 4));m.insert(pair<int, int>(3, 3));if(m.empty()){cout << "m is empty" << endl;}else{cout << "m is not empty" << endl;cout << "m size is " << m.size() << endl;}map<int, int> m1;m1.insert(pair<int, int>(12, 6));m1.insert(pair<int, int>(13, 7));m1.insert(pair<int, int>(14, 8));m1.insert(pair<int, int>(15, 9));m1.insert(pair<int, int>(16, 10));m1.swap(m);map<int, int> :: iterator it;for(it = m.begin(); it != m.end(); it++){cout << it->first << " " << it->second << endl;}
}
int main()
{test1();return 0;
}
三、插入和删除
函数原型
insert(elem) //向容器中插入元素
clear // 清空所有元素
erase(pos) // 删除迭代器所指向元素
erase(begin, end) / / [beigin, end), 删除迭代器这个范围的元素
erase(key) // 按照key删除元素
四、查找和统计
函数原型
find(key) // 若存在返回这个键值对应的迭代器,若不存在返回end迭代器
五、排序
利用仿函数,可以改变排序规则