青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C++分析研究  
C++
日歷
<2013年10月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789
統計
  • 隨筆 - 92
  • 文章 - 4
  • 評論 - 4
  • 引用 - 0

導航

常用鏈接

留言簿

隨筆檔案

文章檔案

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

 
  此文總結常用vector操作,是前一篇的續作!只有代碼,詳細請看代碼中的注釋。
   [cpp] view plaincopy/*
   * file_name: vector_test.cpp
   *
   * Created on: 2014年6月28日 下午3:34:23
   * Author: The_Third_Wave,
   * Last modified: 2014年6月28日 下午3:34:23
   #include
   #include
   #include "Headers/Myfunc.h"
   #include "Headers/Person.h"
   void output(const std::vector &vec)
   // 因為是輸出而不是修改,定義形參為常量引用,提高可靠性(const)和效率(&)!
   {
   std::cout << "size: " << vec.size()<< ", capacity: " <
   }
   int main()
   {
   std::vector vec = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
   pr_vector(vec);
   // 訪問首位元素,原生方法之vec.front()和vec.back() 使用前一般最好做元素檢查vec.size()
   std::cout << vec.front() << std::ends << vec.back() << std::endl;
   // 通過迭代器【注意:*(--vec.end())】, 使用前一般最好做元素檢查vec.size()
   std::cout << *vec.begin() << std::ends << *(--vec.end()) << std::endl;
   auto a = vec.size(); // 讓編譯器自動分析表達式所屬類型
   auto b = vec.capacity(); // 不重新分配內存的話,vector可以保存多少元素
   std::cout << "size: " << a << std::ends << "capacity: " <
   vec.reserve(50); // 分配至少能容納n個元素的內存空間
   output(vec);
   vec.shrink_to_fit(); // 將capacity()減少為size()相同大小
   output(vec);
   vec.reserve(50); // 分配至少能容納50個元素的內存空間
   // 以下添加元素
   for (decltype(vec.size()) ix = 0; ix != 40; ++ix) // decltype從表達式類型推導出變量類型
   {
   vec.push_back(ix*ix);
   }
   pr_vector(vec);
   output(vec); // s輸出證明沒超過size,vector就不會分配超額的空間
   // 我們不分配空間,看看自動管理
   for (decltype(vec.size()) ix = 0; ix != 40; ++ix) // decltype從表達式類型推導出變量類型
   {
   vec.push_back(ix*ix);
   }
   pr_vector(vec);
   output(vec); // 輸出表示分配了超額的空間,【測試表明:分配的空間為當前的2倍,也就意味著越大越浪費】
   // 以下重新初始化,開始插入操作的學習【并學習及幾種賦值的操作方法】
   std::vector vec2 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; // 重新初始化
   pr_vector(vec); pr_vector(vec2);
   std::swap(vec, vec2); // 【快速】交換兩容器的數據 swap(a, b)
   pr_vector(vec); pr_vector(vec2);
   vec2.assign(vec.begin(), vec.end()); // 參數為另外一個同類型vector的迭代器
   pr_vector(vec); pr_vector(vec2);
   vec.assign({0, 0, 0, 0, 0}); // 參數為初始化列表
   pr_vector(vec);
   vec.assign(10, 1); // 替換為10個1
   pr_vector(vec);
   // vector沒有向頭部插入數據的原生方法,只能通過insert()方法來操作,插入位置都為指針指向的前一個位置
   // 具體有4種
   // 第一種vec.insert(p, t); p為自身的迭代器,t為需要插入的值,返回值為指向新添加元素的迭代器
   auto p = vec.insert(vec.begin() + vec.size()/2, 6688);
   // 第二種vec.insert(p, n, t); p為自身的迭代器,插入n個t,返回值為指向新添加的第一個元素的迭代器,如果n為0,則返回p
   vec.insert(p, 3, 4);
   // 第三種vec.insert(p, b, e); p為自身的迭代器,b、e為同類型其他vec對象的迭代器,返回值為指向新添加的第一個元素的迭代器。范圍為空,則返回p
   vec.insert(p, vec2.crbegin(), vec2.crend()); // const 反向迭代器SAT答案
   // 第四種vec.insert(p, il); p為自身的迭代器,il為元素值列表,返回值為指向新添加的第一個元素的迭代器,列表為空,則返回p
   vec.insert(vec.begin(), {9,8,7,6,5,4,3,2,1,0});
   pr_vector(vec);
   // 善用使用insert返回值,可以實現特定位置的反復插入,以上結果已說明托福答案
   // emplace操作, 【c++11】emplace_front【vector沒有】、emplace、emplace_back對應push_front【vector沒有】、insert、push_back
   std::vector per = {{"The_Third_Wave", 100, }}; // 類初始化+vector初始化,所以{{}, {}}必須的
   per.emplace_back("The_Third_Wave", 188, );
   per.emplace(per.begin() + 1, Person("The_Third_Wave", 168, ));
   for (auto &p: per)
   {
   print(std::cout, p);
   }
   // 刪除操作,注意編譯器不檢查元素是否存在,所以坑自己填
   // vec.pop_back(),vector沒有pop_front()
   vec = {0, 1, 2, 3, 4, 5, 6, 7, 8 ,9};
   vec.pop_back();
   pr_vector(vec);
   // vec.erase(p)【刪除迭代器p所指元素,返回值為:被刪元素之后的迭代器。p指向尾部,返回尾后迭代器,如果p是尾后迭代器,那就坑死你了,恭喜!】
   vec.erase(vec.begin() + 8);
   pr_vector(vec);
   // vec.erase(b, e)【刪除迭代器b,e所指范圍元素,返回值為:被刪元素之后的迭代器。如果e是尾后迭代器,返回的還是尾后迭代器,不坑,恭喜!】
   vec.erase(vec.begin() + 3 , vec.end() - 1);
   pr_vector(vec);
   // vec.clear()刪除所有,返回值為void
   vec.clear();
   pr_vector(vec);
   std::cout << "上面有空行就對了!否則就是出錯了。";
   }
   結果為:
 
   [cpp] view plaincopy
   0 1 2 3 4 5 6 7 8 9
   0 9
   0 9
   size: 10 capacity: 10
   size: 10, capacity: 50
   size: 10, capacity: 10
   0 1 2 3 4 5 6 7 8 9 0 1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 289 324 361 400 441 484 529 576 625 676 729 784 841 900 961 1024 1089 1156 1225 1296 1369 1444 1521
   size: 50, capacity: 50
   0 1 2 3 4 5 6 7 8 9 0 1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 289 324 361 400 441 484 529 576 625 676 729 784 841 900 961 1024 1089 1156 1225 1296 1369 1444 1521 0 1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 289 324 361 400 441 484 529 576 625 676 729 784 841 900 961 1024 1089 1156 1225 1296 1369 1444 1521
   size: 90, capacity: 100
   0 1 2 3 4 5 6 7 8 9 0 1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 289 324 361 400 441 484 529 576 625 676 729 784 841 900 961 1024 1089 1156 1225 1296 1369 1444 1521 0 1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 289 324 361 400 441 484 529 576 625 676 729 784 841 900 961 1024 1089 1156 1225 1296 1369 1444 1521
   0 1 2 3 4 5 6 7 8 9
   0 1 2 3 4 5 6 7 8 9
   0 1 2 3 4 5 6 7 8 9 0 1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 289 324 361 400 441 484 529 576 625 676 729 784 841 900 961 1024 1089 1156 1225 1296 1369 1444 1521 0 1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 289 324 361 400 441 484 529 576 625 676 729 784 841 900 961 1024 1089 1156 1225 1296 1369 1444 1521
   0 1 2 3 4 5 6 7 8 9
   0 1 2 3 4 5 6 7 8 9
   0 0 0 0 0
   1 1 1 1 1 1 1 1 1 1
   9 8 7 6 5 4 3 2 1 0 1 1 1 1 1 9 8 7 6 5 4 3 2 1 0 4 4 4 6688 1 1 1 1 1
   0 1 2 3 4 5 6 7 8
   0 1 2 3 4 5 6 7
   0 1 2 7
   上面有空行就對了!否則就是出錯了。
posted on 2014-09-20 15:13 HAOSOLA 閱讀(328) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


 
Copyright © HAOSOLA Powered by: 博客園 模板提供:滬江博客
PK10開獎 PK10開獎
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美在线免费观看亚洲| 亚洲欧洲美洲综合色网| 欧美一级免费视频| 亚洲国产精品成人久久综合一区 | 久久精品盗摄| 久久夜色撩人精品| 校园春色国产精品| 欧美激情欧美激情在线五月| 亚洲欧美精品在线| 欧美成人免费视频| 欧美一区二区三区另类| 蜜桃视频一区| 久久精品亚洲精品| 国产精品久久久久久模特| 欧美国产先锋| 黄色成人在线网址| 亚洲欧美另类国产| 欧美一区二区高清在线观看| 欧美激情一区二区在线| 欧美国产亚洲另类动漫| 激情亚洲网站| 欧美一区二区三区免费观看| 亚洲一级二级| 国产精品yjizz| 99精品视频免费观看| 日韩亚洲成人av在线| 欧美精品在线一区二区三区| 亚洲韩国日本中文字幕| 亚洲三级观看| 欧美日韩伦理在线免费| 99精品黄色片免费大全| 亚洲小说春色综合另类电影| 欧美日韩中文字幕| 欧美在线啊v| 欧美a级片网站| 日韩一级大片在线| 国产精品久久久久7777婷婷| 亚洲——在线| 午夜国产精品视频| 亚洲精品一二三| 韩日成人在线| 久久精品亚洲一区| 老司机67194精品线观看| 国产一区二区三区四区老人| 另类av导航| 午夜精品福利一区二区蜜股av| 毛片一区二区三区| 先锋影音国产一区| 在线视频欧美日韩精品| 在线观看中文字幕亚洲| 国产精品激情电影| 久久午夜电影| 午夜在线精品偷拍| 另类图片国产| 久久久午夜精品| 99爱精品视频| 亚洲美女av黄| 亚洲国产乱码最新视频| 性色一区二区| 亚洲精品一区二区三区在线观看 | 亚洲主播在线播放| 一区二区成人精品| 国产综合视频| 韩国女主播一区| 好看的日韩视频| 狠狠色狠色综合曰曰| 国产色产综合产在线视频| 欧美日韩免费高清| 国产精品视频久久久| 欧美午夜精品久久久久久浪潮| 麻豆精品视频| 欧美日韩国产大片| 国产精品久久久久一区二区| 国产精品麻豆欧美日韩ww| 国产日产亚洲精品| 在线观看久久av| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲一区尤物| 久久久精品2019中文字幕神马| 久久免费精品日本久久中文字幕| 久久高清免费观看| 久久偷窥视频| 欧美激情视频在线免费观看 欧美视频免费一 | 亚洲视频在线观看免费| 夜色激情一区二区| 一区二区三区欧美视频| 欧美一级久久| 免费成人黄色| 亚洲午夜91| 老巨人导航500精品| 欧美国产欧美亚洲国产日韩mv天天看完整 | 在线成人黄色| 亚洲性图久久| 日韩一区二区电影网| 久久九九电影| 国产欧美一区二区视频| 99re66热这里只有精品3直播| 久久精品夜色噜噜亚洲a∨| 一本色道久久综合狠狠躁篇的优点 | 亚洲精品视频一区| 卡通动漫国产精品| 午夜精品久久| 久久久久.com| 一区二区高清| 国产乱理伦片在线观看夜一区| 亚洲成色www8888| 亚洲国产乱码最新视频| 久久成人一区| 国产综合网站| 久久久久久久久岛国免费| 午夜免费在线观看精品视频| 欧美网站在线| 亚洲欧美一区二区三区极速播放 | 午夜精品电影| 国产精品毛片a∨一区二区三区|国| 中日韩高清电影网| 亚洲美女视频在线观看| 欧美日韩三级| 亚洲欧美精品在线观看| 欧美在线观看视频在线| 好吊妞**欧美| 日韩亚洲欧美一区二区三区| 欧美午夜电影在线观看| 欧美在线91| 欧美日本在线观看| 久久九九99| 欧美粗暴jizz性欧美20| 西瓜成人精品人成网站| 久久久久.com| 亚洲专区一区二区三区| 久久国产精品99精品国产| 在线性视频日韩欧美| 午夜亚洲福利| 亚洲欧美另类中文字幕| 欧美国产日韩一区二区在线观看| 日韩视频在线免费观看| 久久久久这里只有精品| 亚洲无亚洲人成网站77777| 老鸭窝毛片一区二区三区 | 欧美资源在线| 国产精品美女主播| 一区二区三区回区在观看免费视频| 亚洲国产欧美日韩精品| 久久激情五月婷婷| 久久精品在线视频| 亚洲成在人线av| 欧美mv日韩mv国产网站| 麻豆成人在线观看| 亚洲激情影院| 欧美日韩三级在线| 亚洲精品一区二区在线观看| 亚洲九九九在线观看| 欧美日韩精品一本二本三本| 亚洲久久视频| 欧美一区二区福利在线| 国产在线观看一区| 欧美激情一区二区三区四区| 欧美成人午夜激情| 一本色道久久综合亚洲91| 国产欧美日本| 免费看黄裸体一级大秀欧美| 欧美国产视频日韩| 亚洲欧美激情视频| 91久久精品国产91性色| 国产精品人人做人人爽| 欧美在线观看一区二区| 亚洲大胆人体在线| 性欧美精品高清| 亚洲欧洲另类国产综合| 国产一区在线免费观看| 欧美国产丝袜视频| 欧美一二区视频| 夜夜爽www精品| 欧美激情一区二区久久久| 性色一区二区三区| 一区二区三区av| 亚洲日本欧美天堂| 国产欧美日韩免费看aⅴ视频| 欧美激情第二页| 久久综合五月| 欧美成人一区二区在线| 午夜精品久久久久久久久久久| 亚洲性人人天天夜夜摸| 欧美国产三级| 亚洲福利专区| 亚洲国产精品综合| 亚洲激情欧美激情| 亚洲伦伦在线| 午夜精彩国产免费不卡不顿大片| 99re8这里有精品热视频免费| 欧美激情成人在线| 99视频在线观看一区三区| 亚洲午夜极品| 久久天天狠狠| 欧美日韩亚洲一区| 国产一区二区无遮挡| 亚洲国产精品www| 欧美一区亚洲| 亚洲第一精品在线| 午夜在线成人av|