日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C/C++语言函数学习(3)STL中map容器

發布時間:2024/8/23 c/c++ 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C/C++语言函数学习(3)STL中map容器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/******************************************************************map的基本操作函數:C++ Maps是一種關聯式容器,包含“關鍵字/值”對begin() 返回指向map頭部的迭代器clear() 刪除所有元素count() 返回指定元素出現的次數empty() 如果map為空則返回trueend() 返回指向map末尾的迭代器equal_range() 返回特殊條目的迭代器對erase() 刪除一個元素find() 查找一個元素get_allocator() 返回map的配置器insert() 插入元素key_comp() 返回比較元素key的函數lower_bound() 返回鍵值>=給定元素的第一個位置max_size() 返回可以容納的最大元素個數rbegin() 返回一個指向map尾部的逆向迭代器rend() 返回一個指向map頭部的逆向迭代器size() 返回map中元素的個數swap() 交換兩個mapupper_bound() 返回鍵值>給定元素的第一個位置value_comp() 返回比較元素value的函數 ==================================================================== 1、map構造map<int, string> mapStudent;2、map添加數據mapStudent.insert(pair<int, string>(1, "student_one"));mapStudent.insert(map<int, string>::value_type(2, "student_two"));mapStudent[3] = "student_three";********************************************************************/ #pragma warning (disable:4786) #include <map> #include <string> #include <iostream>using namespace std;int main() {map<int, string> mapStudent;cout<<"三種插入方式:"<<endl;mapStudent.insert(pair<int, string>(1, "student_one"));mapStudent.insert(map<int, string>::value_type(2, "student_two"));mapStudent[3] = "student_three";mapStudent.insert(map<int, string>::value_type(4, "student_four")); pair<map<int,string>::iterator,bool> InsertPair; //判斷是否插入成功InsertPair = mapStudent.insert(map<int,string>::value_type(5,"student_five"));if(InsertPair.second == true){//cout<<InsertPair.first.operator++<<endl; //求解??不知道怎么應用第一個數據}cout<<"三種遍歷方式:"<<endl;map<int, string>::iterator iter;for(iter = mapStudent.begin(); iter != mapStudent.end(); iter++){cout<<iter->first<<" "<<iter->second<<endl;}map<int, string>::reverse_iterator iters;for(iters = mapStudent.rbegin(); iters != mapStudent.rend(); iters++){cout<<iters->first<<" "<<iters->second<<endl;} //逆序輸出cout<<"數組的輸出形式:"<<endl;for(int iIndex=0;iIndex < mapStudent.size();iIndex++) //size()返回成員的個數{cout<<mapStudent[iIndex]<<endl;}cout<<mapStudent.count(1)<<endl; //count()判斷關鍵字是否存在,返回1表示存在,0iter = mapStudent.find(1); //find()關鍵字存在時,返回數據所在位置的迭代器,否則返回end()返回的迭代器if( iter != mapStudent.end() ){cout<<"數據存在:"<<iter->first<<" "<<iter->second<<endl;mapStudent.erase(iter); //用迭代刪除數據}else{cout<<"數據不存在!"<<endl;}int n = mapStudent.erase(3); //用關鍵字刪除,如果刪除了會返回1,否則返回0iter = mapStudent.lower_bound(2); //返回2的迭代器cout<<iter->second<<endl;iter = mapStudent.upper_bound(2); //返回3的迭代器cout<<iter->second<<endl; /*Equal_range函數返回一個pair,pair里面第一個變量是Lower_bound返回的迭代器,pair里面第二個迭代器是Upper_bound返回的迭代器,如果這兩個迭代器相等的話,則說明map中不出現這個關鍵字*/pair<map<int,string>::iterator,map<int,string>::iterator> MapPair;MapPair = mapStudent.equal_range(2);if( MapPair.first == MapPair.second ){cout<<"Do not find"<<endl;}else{cout<<"Find"<<endl;}//刪除一個前閉后開的集合,這是STL的特性mapStudent.earse(mapStudent.begin(), mapStudent.end()); }

總結

以上是生活随笔為你收集整理的C/C++语言函数学习(3)STL中map容器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。