C++ STL Map - 基礎用法
阿新 • • 發佈:2022-05-08
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;