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

歡迎訪問 生活随笔!

生活随笔

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

c/c++

c++关联容器的容器操作(和顺序容器都支持的操作)详细解释,基础于c++primer 5th 表 9.2 (持续更新)

發布時間:2024/4/18 c/c++ 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++关联容器的容器操作(和顺序容器都支持的操作)详细解释,基础于c++primer 5th 表 9.2 (持续更新) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關聯容器和順序容器都是容器,所以都支持容器操作。就是表格9.2所示的操作。以下以map為例測試表格中的操作是否滿足關聯容器。

1.類型別名:

#include <iostream> #include <string> #include <map> #include <set> #include <iterator> #include <fstream> using namespace std;int main() { string f = "file"; ifstream in(f); map<string,unsigned> words_count; string str; while(in >> str) { words_count[str] ++; }//iterator map<string,unsigned>::iterator it; for(it = words_count.begin(); it != words_count.end();++it) { cout << it->first << " occurs " << it->second << (it->second > 1?"times":"time") << endl; } //const_iterator map<string,unsigned>::const_iterator it1 = words_count.cbegin(); while(it1 !=words_count.end()) { cout << it1->first << " occurs " << it1->second << (it1->second > 1 ? "times":"time")<<endl; ++it1; } //reverse_iterator map<string,unsigned>::const_reverse_iterator it3; for(it3 = words_count.crbegin();it3 != words_count.crend();++it3) cout << it3->first << " occurs " << it3->second << (it3->second > 1?"times":"time")<< endl;//size_type map<string,unsigned>::size_type s1; s1 = words_count.size(); cout << "words_count 's size is:" << s1 << endl;//difference_type map<string,unsigned>::difference_type d; //d = words_count.end() - words_count.begin(); //cout << d << endl; /*這里報錯,gcc編譯器支出,這里不支持-運算符,說明迭代器不能相減*///value_type for(map<string,unsigned>::value_type i : words_count) cout << i.first << endl;//reference or const_reference for(map<string,unsigned>::const_reference i : words_count)cout << i.first<< " occurs " << i.second << " times. " << endl;return 0; }

文件file是一個存放數據的文件.

運行全部通過。

?

總結,g++編譯器不支持關聯容器的迭代器的 -? 減法運算符。其余表格9.2里面的map都支持。set情況大家自己可以實驗。

2.構造函數

#include <iostream> #include <string> #include <map> #include <set> #include <fstream> using namespace std; int main() { string f= "file"; ifstream in(f); map<string,unsigned> words_count; set<string> words; string str;while(in >> str) {words_count[str] ++; } in.close(); in.open(f);//下面測試構造函數set先 set<string> s1{"str1","str2","str3","str4","str5","str6","str7"}; set<string> s2; set<string> s3(s1); set<string> s4(s1.begin(),s1.end());//再看看map map<string,int> m1; while(in >>str) { m1[str] ++; } map<string,int> m2(m1); map<string,int> m3(m1.begin(),m1.end()); map<string,int> m4;return 0; }

總結:對于構造函數

C c;?? C? c1(c2);????? C?? c(c1.begin(),c1.end());?? C? c{p1,p2,p3...};都成立,就是map的列表初始化還沒學到。這里沒法實驗。

3.賦值與swap

#include <iostream> #include <string> #include <map> #include <set> #include <fstream> using namespace std; int main() { string f= "file"; ifstream in(f); map<string,unsigned> words_count; set<string> words; string str; while(in >> str) {words_count[str] ++; }//map ' s assignment// from == map<string,unsigned> m1; m1 = words_count;//set 's assignment// from {} set<string> s1 = {"ab","ac","ad","efc"};// from = set<string> s2 = s1; s2 = {"robert","liming","Wiliam"}; for(set<string>::const_reference i : s2)cout << i << endl;return 0; }

?關于swap例子:

#include <string> #include <iostream> #include <map> #include <set> using namespace std; int main() { map<string,int> m1; map<string,int> m2; m1.swap(m2);return 0; }

4.c.size(),c.max_size(),c.empty(),c.clear()都滿足

#include <string> #include <iostream> #include <set> #include <map> using namespace std; int main() { string str; map<string,int> words_cnt; if(words_cnt.empty())cout << "words_cnt is empty!!!" << endl; while(cin >> str) {words_cnt[str] ++; } cout << words_cnt.size() << endl; cout << words_cnt.max_size() << endl; return 0; } ~

運行結果如下:?

words_cnt is empty!!! asd fasd fasdf asdf asdf 4 128102389400760775

5.關系運算符==、!=、<=、>=、>、<

#include <string> #include <iostream> #include <set> #include <map> using namespace std; int main() { string str; map<string,int> words_cnt,m2; if(words_cnt.empty())cout << "words_cnt is empty!!!" << endl; while(cin >> str) {words_cnt[str] ++; } cout << words_cnt.size() << endl; cout << words_cnt.max_size() << endl;cout << (words_cnt > m2) << endl; if(words_cnt == m2)cout << "equal" << endl; else cout << "not equal" << endl; return 0; }

運行如下:

words_cnt is empty!!! asdf asdf asdf a 2 128102389400760775 1 not equal

6.迭代器c.cbegin()和c.cend()

#include <string> #include <iostream> #include <set> #include <map> using namespace std; int main() { string str; map<string,int> words_cnt,m2; if(words_cnt.empty())cout << "words_cnt is empty!!!" << endl; while(cin >> str) {words_cnt[str] ++; } cout << words_cnt.size() << endl; cout << words_cnt.max_size() << endl;cout << (words_cnt > m2) << endl; if(words_cnt == m2)cout << "equal" << endl; else cout << "not equal" << endl;cout << "print :" << endl; map<string,int>::const_iterator it; for(it = words_cnt.cbegin(); it != words_cnt.end() ; ++ it){cout << it->first << endl;cout << it->second << endl;}return 0; }

?

總結

以上是生活随笔為你收集整理的c++关联容器的容器操作(和顺序容器都支持的操作)详细解释,基础于c++primer 5th 表 9.2 (持续更新)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 成人片黄网站色大片免费毛片 | 欧美我不卡 | 日韩av毛片| a级黄毛片 | 久久嫩草视频 | 欧美日韩国产网站 | 欧美日韩99 | 久久久久国产视频 | 天天操夜夜操狠狠操 | 亚洲一区二区三区四区在线观看 | 综合激情网五月 | 免费毛片一区二区三区 | 一级性爱视频 | 日韩中文视频 | 婷婷五月情 | www日本黄色 | 免费黄色av网址 | 国产第一毛片 | 国产精品成人免费精品自在线观看 | 日本69av | 日韩h在线 | 神马久久午夜 | 白浆影院 | 欧美成人一二三 | 亚洲人性生活视频 | 久草成人网 | 国产精品一线二线 | 亚洲最新在线 | 穿情趣内衣被c到高潮视频 欧美性猛交xxxx黑人猛交 | 人妻无码一区二区三区四区 | 精品动漫一区二区三区的观看方式 | 91视频在线网站 | 啪啪短视频 | 中文字幕亚洲高清 | 午夜精品在线观看 | 久久免费在线观看视频 | 娇妻被肉到高潮流白浆 | 日韩你懂的 | 特一级黄色 | 欧美日韩在线视频免费 | 在线黄网站 | 天天射网 | 亚洲av无码一区二区三区在线观看 | 成人欧美一区二区三区黑人冫 | 精品视频一区二区 | 国产精品久久久久久久裸模 | 中文字幕电影一区 | 亚洲色在线视频 | 亚洲国产精品无码久久久久高潮 | 国产精品一区二区不卡 | 成人影视在线看 | 福利视频在线播放 | 欧洲女性下面有没有毛发 | 狼人综合伊人 | 午夜av免费看 | www.亚洲 | 天天想你在线观看完整版电影免费 | 日韩欧美在线观看免费 | 国产一区伦理 | 九九热精品免费视频 | 国产精品久久一区二区三区动 | 久久久久久av无码免费网站 | 国产精品一区二区在线免费观看 | 国产在线观看99 | 欧美性猛交99久久久久99按摩 | mm1313亚洲精品 | 精品国偷自产一区二区三区 | 狼人精品一区二区三区在线 | 国产精品久久影视 | 亚洲成人av中文字幕 | 不卡中文 | 久久久国产精品人人片 | 久久无码国产视频 | 成年人网站在线观看视频 | 99re在线精品视频 | 人妖一区二区三区 | 国产欧美久久久久久 | 亚洲第一天堂影院 | 日韩久久久久久久久 | 扒下小娇妻的内裤打屁股 | 好色综合 | 亚洲自拍偷拍欧美 | 亚洲不卡视频 | 老女人综合网 | 在线观看av网站 | 秋霞影院午夜 | 国产毛片欧美毛片久久久 | 麻豆精品久久久久久久99蜜桃 | 国产精品久久久久久久久免费相片 | 国产欧美一区二区三区在线看 | 九九九免费 | 精品国产乱码久久久久久图片 | 天天爽天天爽夜夜爽毛片 | 国产视频在 | 可以直接看av的网址 | 色偷偷资源 | 女人被男人操 | 特一级黄色片 | 天堂av网址|