map是C++的一個標準容器,key-record的關係。ios
1. map的構造函數api
map<string, int> mapstring; map<int, string> mapint; map<string, char> mapstring; map<char, string> mapchar; map<char, int> mapchar; map<int, char> mapint;
2. map添加數據app
map<int, string> maplive; maplive.insert(pair<int, string>(102, "active")); maplive.insert(map<int, string>::value(type(321, "hai")); maplive[122] = "April";//map中最簡單最經常使用的插入添加
3. map中查找元素函數
find()函數返回一個迭代器指向鍵值爲key的元素,若是沒找到折返回指向map尾部的迭代器spa
map<int ,string >::iterator l_it;; l_it=maplive.find(112); if(l_it==maplive.end()) cout<<"we do not find 112"<<endl; else cout<<"wo find 112"<<endl;
4. map中元素刪除code
map<int, string>::iterator it; it = maplive.find(112); if (it == maplive.end()) cout<<"we do not find 112"<<endl; else maplive.erase(it);
5. map中swap用法blog
map中的swap不是一個容器的元素的交換,而是兩個容器的交換。排序
#include <map> #include <iostream> using namespace std; int main( ) { map <int, int> m1, m2, m3; map <int, int>::iterator m1_Iter; m1.insert ( pair <int, int> ( 1, 10 ) ); m1.insert ( pair <int, int> ( 2, 20 ) ); m1.insert ( pair <int, int> ( 3, 30 ) ); m2.insert ( pair <int, int> ( 10, 100 ) ); m2.insert ( pair <int, int> ( 20, 200 ) ); m3.insert ( pair <int, int> ( 30, 300 ) ); cout << "The original map m1 is:"; for ( m1_Iter = m1.begin( ); m1_Iter != m1.end( ); m1_Iter++ ) cout << " " << m1_Iter->second; cout << "." << endl; // This is the member function version of swap //m2 is said to be the argument map; m1 the target map m1.swap( m2 ); cout << "After swapping with m2, map m1 is:"; for ( m1_Iter = m1.begin( ); m1_Iter != m1.end( ); m1_Iter++ ) cout << " " << m1_Iter -> second; cout << "." << endl; cout << "After swapping with m2, map m2 is:"; for ( m1_Iter = m2.begin( ); m1_Iter != m2.end( ); m1_Iter++ ) cout << " " << m1_Iter -> second; cout << "." << endl; // This is the specialized template version of swap swap( m1, m3 ); cout << "After swapping with m3, map m1 is:"; for ( m1_Iter = m1.begin( ); m1_Iter != m1.end( ); m1_Iter++ ) cout << " " << m1_Iter -> second; cout << "." << endl; }
6. map中sort問題ci
map中的元素是自動按照key升序排序,因此不能對map用sort函數。get
#include <map> #include <iostream> using namespace std; int main( ) { map <int, int> m1; map <int, int>::iterator m1_Iter; m1.insert ( pair <int, int> ( 1, 20 ) ); m1.insert ( pair <int, int> ( 4, 40 ) ); m1.insert ( pair <int, int> ( 3, 60 ) ); m1.insert ( pair <int, int> ( 2, 50 ) ); m1.insert ( pair <int, int> ( 6, 40 ) ); m1.insert ( pair <int, int> ( 7, 30 ) ); cout << "The original map m1 is:"<<endl; for ( m1_Iter = m1.begin( ); m1_Iter != m1.end( ); m1_Iter++ ) cout << m1_Iter->first<<" "<<m1_Iter->second<<endl; } The original map m1 is: 1 20 2 50 3 60 4 40 6 40 7 30
7. map中基本操做函數
begin()返回指向map頭部的迭代器
clear()刪除全部元素
count()返回指定元素出現的次數
empty()若是map爲空則返回true
end()返回指向map尾部的迭代器
equal_range()返回特殊條目的迭代器對
erase()刪除一個元素
find()查找一個元素
get_allocator()返回map的配置器
insert()插入元素
key_comp()返回比較元素key的函數
lower_bound()返回鍵值>=給定元素的第一個位置
max_size()能夠容納的最大元素個數
rbegin()返回一個指向map尾部的逆向迭代器
rend()返回一個指向map頭部的逆向迭代器
size()返回map中元素個數
swap()交換兩個map
upper_bound()返回鍵值>給定元素的第一個位置
value_comp()返回比較元素value的函數