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

C++分析研究  
C++
日歷
<2014年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011
統計
  • 隨筆 - 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 閱讀(324) 評論(0)  編輯 收藏 引用
 
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>
            国产欧美日韩中文字幕在线| 午夜精品久久久久久久99樱桃 | 亚洲黄色在线看| 国产欧美精品日韩区二区麻豆天美| 欧美日韩在线大尺度| 欧美日韩综合网| 国产精品亚洲一区| 在线精品国产欧美| 亚洲伦理一区| 亚洲欧美在线高清| 久久综合精品一区| 亚洲国产三级| 亚洲视频成人| 久久久五月婷婷| 欧美日韩在线不卡一区| 国产欧美视频一区二区三区| 伊人久久大香线蕉av超碰演员| 亚洲国产成人在线| 亚洲一区二区高清| 久久婷婷麻豆| 9国产精品视频| 久久久久国色av免费看影院| 欧美精品在线播放| 国产亚洲第一区| 亚洲国产精品一区二区www在线| 99国产精品久久久久久久| 亚洲欧美一区二区激情| 欧美福利小视频| 亚洲在线第一页| 欧美成人四级电影| 国产日韩欧美不卡| 日韩天堂在线视频| 久久蜜桃资源一区二区老牛 | 国产精品日韩欧美综合| 伊人精品久久久久7777| 亚洲一区三区在线观看| 欧美 日韩 国产精品免费观看| 99热精品在线| 欧美成人精品1314www| 国产美女精品| 一区二区欧美激情| 欧美国产精品v| 欧美在线短视频| 国产精品久久久久久久久久直播 | 国产欧美视频在线观看| 亚洲欧美欧美一区二区三区| 亚洲啪啪91| 亚洲欧美日本伦理| 欧美激情偷拍| 欧美在线日韩在线| 国产精品免费小视频| 一本大道av伊人久久综合| 欧美.www| 欧美在线观看www| 国产精品久久久久久妇女6080| 亚洲人人精品| 欧美激情 亚洲a∨综合| 欧美日韩精品二区第二页| 一本久久知道综合久久| 久久av资源网| 亚洲精选一区| 亚洲永久免费| 国产精品久久久久9999吃药| 亚洲精品一区中文| 亚洲国产岛国毛片在线| 久久这里只有精品视频首页| 国产一区二区三区在线观看网站| 亚久久调教视频| 午夜精品久久久久久久久| 国产区亚洲区欧美区| 久久精品在线播放| 欧美一区二区三区四区视频| 国产亚洲人成a一在线v站| 久久久高清一区二区三区| 久久精品亚洲一区二区三区浴池 | 国产精品毛片| 性欧美长视频| 久久精品国产一区二区三区| 亚洲成色www久久网站| 亚洲高清资源| 久久综合伊人77777麻豆| 精品999久久久| 欧美高清在线一区二区| 欧美成熟视频| 亚洲特黄一级片| 欧美日韩精选| 欧美日本精品在线| 亚洲手机视频| 亚洲欧美日韩综合| 狠狠色香婷婷久久亚洲精品| 欧美成人在线免费视频| 欧美成人精品1314www| 在线视频精品一区| 欧美在线视频观看| 亚洲区第一页| 亚洲综合国产| 亚洲欧美成人精品| 免费观看在线综合| 亚洲人成网站色ww在线| 亚洲精品日日夜夜| 国产麻豆9l精品三级站| 欧美承认网站| 国产精品久久波多野结衣| 久久综合九九| 欧美日韩亚洲一区二区三区在线观看 | 一级成人国产| 国产精品久久午夜| 欧美一区二区三区免费观看 | 久久九九免费视频| 亚洲美女av在线播放| 亚洲图片欧美日产| 尤妮丝一区二区裸体视频| 亚洲精品一区久久久久久 | 亚洲先锋成人| 久久综合999| 亚洲欧美日韩视频一区| 美腿丝袜亚洲色图| 久久精品国语| 国产精品美女一区二区| 亚洲精品久久久一区二区三区| 国产精品家教| 亚洲日本中文字幕| 亚洲激情欧美激情| 久久婷婷蜜乳一本欲蜜臀| 亚洲欧美综合精品久久成人| 欧美午夜精品久久久久久孕妇| 欧美日韩www| 久久亚洲综合网| 欧美三区美女| 欧美激情精品久久久久久| 国产精品视频区| 亚洲日韩欧美视频| 亚洲第一在线| 久久国产婷婷国产香蕉| 亚洲国产精品精华液2区45| 久久精品五月| 欧美一区二区三区男人的天堂 | 99在线|亚洲一区二区| 最新国产精品拍自在线播放| 久久精品国产第一区二区三区最新章节 | 亚洲国产专区| 国产精品麻豆成人av电影艾秋| 亚洲激情在线播放| 91久久精品国产91久久性色| 老司机免费视频一区二区| 久久另类ts人妖一区二区 | 亚洲无毛电影| 欧美性视频网站| 一级成人国产| 性久久久久久久久| 国产欧美日韩亚洲精品| 亚洲欧美久久久| 久久精品国产亚洲5555| 国内精品久久久久影院优| 久久久亚洲精品一区二区三区 | 欧美电影在线观看完整版| 男女激情久久| 亚洲精品视频免费在线观看| 欧美国产亚洲精品久久久8v| 亚洲国产专区校园欧美| 一区二区三区四区国产精品| 欧美午夜视频一区二区| 亚洲欧美日韩精品久久| 久久久久久色| 亚洲精品在线视频观看| 欧美吻胸吃奶大尺度电影| 亚洲免费在线看| 欧美成人精品不卡视频在线观看| 亚洲欧洲精品一区二区| 欧美午夜大胆人体| 男人插女人欧美| 国一区二区在线观看| 久久久99精品免费观看不卡| 欧美搞黄网站| 亚洲欧美视频一区| 激情伊人五月天久久综合| 美女主播一区| 夜夜爽夜夜爽精品视频| 久久精品亚洲乱码伦伦中文 | 亚洲在线成人精品| 国产无一区二区| 亚洲图片欧洲图片日韩av| 欧美中日韩免费视频| 激情欧美日韩| 欧美三级午夜理伦三级中视频| 欧美影院视频| 99精品国产一区二区青青牛奶 | 这里是久久伊人| 亚洲天堂偷拍| 免费一区视频| 亚洲欧美视频一区二区三区| 在线观看日韩av| 国产精品久久久久久久7电影| 欧美一区二区三区在线观看| 亚洲高清一区二区三区| 久久精品亚洲精品| 亚洲先锋成人| 亚洲精品视频在线观看网站| 国产自产女人91一区在线观看| 欧美视频网址|