1. 程式人生 > 其它 >C++ STL Map - 基礎用法

C++ STL Map - 基礎用法

Map用法

宣告

// map<Type,Type>name;
map <int,bool> flag;

基礎函式

插入元素

map <int,bool> flag;
// 使用insert插入的元素互異,即當使用insert插入的資料出現相同key時,插入語句不起作用
// 使用array方式插入的元素覆蓋原key所對應的value

// insert插入pair
flag.insert(pair<int,bool>(77,flase));
// insert插入value_type資料
flag.insert(map<int,bool>::value_type(79,true));
// array插入
falg[75]=false;

查詢元素

// flag.find(key)
// find()函式返回key所對應的地址【如果key存在的話】,地址可以用迭代器承接
// 如果key不存在,find會遍歷到map結尾,返回最後的地址,即flag.end()
// 如下:如果key為77的value不存在,flag.find(77)=flag.end()
map <int,bool>::iterator iterflag; 
iterflag=flag.find(77);

刪除與清空元素

// 迭代器刪除
map <int,bool>::iterator iter; 
iter=flag.find(77);
flag.erase(iter);
// 清空map
flag.erase(flag.begin(),flag.end());
// 關鍵字刪除 flag.erase(key),刪除成功返回1,否則返回0

Map的大小

// flag.size() 返回map中元素的個數

其他用法

mapname.begin()

mapname.end()

mapname.empty()

mapname.count()

mapname.erase()

Map迭代器

宣告

map <type,type>::iterator itername;

迭代器遍歷

map <int,bool> flag;
map <int,bool>::iterator iter;
for(iter=flag.begin();iter!=flag.end();iter++){}

迭代器訪問元素

map <int,bool>::iterator iter;
// iter->first 指向iter元素的key,返回key值
// iter->second 指向iter元素的value,返回value值

// 反向迭代器 reverse_iterator
// 反向迭代器從map的末尾開始遍歷
map <int,bool>::reverse_iterator reiter;