您的位置:首页 > 其它

关联式容器map/multimap之初始化、删除元素、交换元素及清空操作

2016-02-28 10:17 351 查看
#include <iostream>
#include <map>
using namespace std;

typedef pair<int, double> mypair;

void print(map<int, double, less<int>> &m)
{
map<int, double, less<int>>::iterator it;
mypair tmp;
if (m.size() < 0)
cout << "Map is empty!" << endl;
else
{
for (it = m.begin(); it != m.end(); it++)
{
tmp = *it;
cout << tmp.first << ";" << tmp.second << endl;
}
}
}
void main()
{
map<int, double, less<int>> m1, m2;
// 初始化容器
m1.insert(mypair(1, 6.0));
m1.insert(mypair(2, 13.5));
m1.insert(mypair(3, 11.3));
m1.insert(mypair(4, 13.4));
m1.insert(mypair(5, 15.1));

// 输出容器内容
cout << "m1:" << endl;
print(m1);
cout << "Size of m1:" << m1.size() << endl;

// ------------- 容器的删除操作 -------------------------
m2 = m1;
m2.erase(2); // 原型:iterator erase(iterator it);
cout << "m2:" << endl;
print(m2);
cout << "Size of m2 after erase(2):" << m2.size() << endl;

m2.erase(m2.begin());// Iterator erase(iterator first, iterator last);
cout << "m2 after erase(itrator_it):" << endl;
print(m2);
cout << endl;
// Size_type erase(const Key &key);

// ------------ 容器的元素交换操作 ----------------------
/* void swap(map &str);
容器Map/Multimap还提供了元素交换函数swap()。参与交换的两个对象必须类型一致。*/
m1.swap(m2);
cout << "m1:" << endl;
print(m1);
cout << "m2" << endl;
print(m2);
cout << endl;

// --------------- 容器的清空操作 -----------------------
m2.clear();
cout << "m2 after clear():" << endl;
print(m2);
cout << "Size of m2 after clear:" << m2.size() << endl;
cin.get();
}


编译结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: