#include
#include
#include
using namespace std;
void PrintMap(map<int,int>& m)
{
for (map<int, int>::iterator it = m.begin(); it != m.end(); it++)
cout << "Key:" << it->first << " " << "Value:" << it->second << endl;
}
void PrintMap(multimap<int, int>& multi_map)
{
for (map<int, int>::iterator it = multi_map.begin(); it != multi_map.end(); it++)
cout << "Key:" << it->first << " " << "Value:" << it->second << endl;
}
void test00()
{
map<int, int> map1;
pair<map<int,int>::iterator,bool> MyPair = map1.insert(pair<int, int>(10, 10));
if (MyPair.second == true) {
cout << "First insert Successful!" << endl;
}
else {
cout << "First insert Failed!" << endl;
}
MyPair = map1.insert(pair<int, int>(10, 34));
if (MyPair.second) {
cout << "Second insert Successful!" << endl;
}
else{
cout << "Second insert Failed!" << endl;
}
}
void test000()
{
map<int, int> map1;
map1[10] = 10;
map1[20] = 20;
map1[30] = 30;
map1[10] = 1212;
PrintMap(map1);
cout << "------------------------" << endl;
cout << "map1[60]:" << map1[60] << endl;
PrintMap(map1);
}
void test01()
{
map<int, int> map1;
map<int, int> map2(map1);
map<int, int> map3 = map2;
}
void test02()
{
map<int, int> map1;
map1.insert(pair<int, int>(10, 10));
map1.insert(make_pair(20, 20));
map1.insert(map<int, int>::value_type(30, 30));
map1[40] = 40;
map1.insert(map1.begin(), make_pair(2, 5));
PrintMap(map1);
}
void test04()
{
map<int, int> map1;
map1[10] = 10;
map1[20] = 20;
map1[30] = 30;
cout << "size: " << map1.size() << endl;
cout << "empty: " << map1.empty() << endl;
PrintMap(map1);
cout << "-----------------------" << endl;
map<int, int> map2;
map2.swap(map1);
PrintMap(map2);
cout << "------------------" << endl;
PrintMap(map1);
}
void test05()
{
map<int, int> map1;
map1.insert(make_pair(10, 10));
map1.insert(make_pair(20, 20));
map1.insert(make_pair(30, 30));
map1.insert(make_pair(40, 40));
map1.insert(make_pair(50, 50));
map1.insert(make_pair(60, 60));
PrintMap(map1);
cout << "--------删除系列----------" << endl;
cout << "-------------删除第一个-------------" << endl;
map1.erase(map1.begin());
PrintMap(map1);
cout << "---------区间删除--------" << endl;
map<int, int>::iterator it = map1.begin();
it++;
it++;
map1.erase(map1.begin(), it);
PrintMap(map1);
cout << "-----------指定值删除-----------" << endl;
map1.erase(60);
PrintMap(map1);
}
void test06()
{
map<int, int> map1;
map1.insert(make_pair(10, 10));
map1.insert(make_pair(20, 20));
map1.insert(make_pair(30, 30));
map1.insert(make_pair(40, 40));
map<int,int>::iterator it = map1.find(20);
if (it != map1.end())
cout << "Yes!" << endl;
else
cout << "Not find!" << endl;
cout << "-----------------key值相同的个数----------------" << endl;
multimap<int,int> multi_map;
multi_map.insert(make_pair(10, 10));
multi_map.insert(make_pair(10, 20));
multi_map.insert(make_pair(10, 30));
multi_map.insert(make_pair(40, 40));
PrintMap(multi_map);
cout << "count:" << multi_map.count(10) << endl;
}
class MyCompare
{
public:
MyCompare() {};
bool operator()(int v1, int v2) const
{
return v1 > v2;
}
};
void test07()
{
map<int, int, MyCompare> map1;
map1.insert(make_pair(10, 10));
map1.insert(make_pair(1, 20));
map1.insert(make_pair(4, 30));
map1.insert(make_pair(35, 40));
for (map<int, int, MyCompare>::iterator it = map1.begin(); it != map1.end(); it++)
cout << "Key:" << it->first << " " << "Value:" << it->second << endl;
}
int main()
{
test000();
return 0;
}