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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

vector的reserve和resize

發布時間:2024/4/11 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vector的reserve和resize 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

vector的reserve和resize

Posted on2011-05-16 19:42李大嘴閱讀(28735) 評論(3)編輯收藏 ????? vector 的reserve增加了vector的capacity,但是它的size沒有改變!而resize改變了vector的capacity同時也增加了它的size!
原因如下:
????? reserve是容器預留空間,但在空間內不真正創建元素對象,所以在沒有添加新的對象之前,不能引用容器內的元素。加入新的元素時,要調用push_back()/insert()函數。

????? resize是改變容器的大小,且在創建對象,因此,調用這個函數之后,就可以引用容器內的對象了,因此當加入新的元素時,用operator[]操作符,或者用迭代器來引用元素對象。此時再調用push_back()函數,是加在這個新的空間后面的。

????? 兩個函數的參數形式也有區別的,reserve函數之后一個參數,即需要預留的容器的空間;resize函數可以有兩個參數,第一個參數是容器新的大小, 第二個參數是要加入容器中的新元素,如果這個參數被省略,那么就調用元素對象的默認構造函數。下面是這兩個函數使用例子:
例子1:
vector<int> myVec;
myVec.reserve( 100 );???? // 新元素還沒有構造,
?????????????????????????????????????? // 此時不能用[]訪問元素
for (int i = 0; i < 100; i++ )
{
???? myVec.push_back( i ); //新元素這時才構造
}
myVec.resize( 102 );????? // 用元素的默認構造函數構造了兩個新的元素
myVec[100] = 1;?????????? //直接操作新元素
myVec[101] = 2; ?
例子2:
#include <vector>
#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{
??? vector<int> vect;
???
??? vect.push_back(1);
??? vect.push_back(2);
??? vect.push_back(3);
??? vect.push_back(4);
??? vect.reserve(100);
??? cout<<vect.size()<<endl;? //size為4,但是capacity為100
??? int i = 0;
??? for (i = 0; i < 104; i++)
??? {
??? ??? cout<<vect[i]<<endl;
??? }
??? return 0;
}
例子3:
#include <vector>
#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{
??? vector<int> vect;???
??? vect.push_back(1);
??? vect.push_back(2);
??? vect.push_back(3);
??? vect.push_back(4);
??? vect.resize(100);??? //新的空間不覆蓋原有四個元素占有的空間,現在size和capacity都是100
??? cout<<vect.size()<<endl;
??? int i = 0;
??? for (i = 0; i < 104; i++)
??? {
??? ??? cout<<vect[i]<<endl;?
??? }
??? return 0;
}
例子4:
#include <vector>
#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{
??? vector<int> vect;??? ???
??? vect.resize(100);??? //分配100個空間
??? vect.push_back(1);
??? vect.push_back(2);
??? vect.push_back(3);
??? vect.push_back(4);
??? cout<<vect.size()<<endl; //現在size和capacity都是104
??? int i = 0;
??? for (i = 0; i < 104; i++)
??? {
??? ??? cout<<vect[i]<<endl;?
??? }
??? return 0;
}
????? 從上面例子可以看出,不管是調用resize還是reserve,二者對容器原有的元素都沒有影響。

總結

以上是生活随笔為你收集整理的vector的reserve和resize的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 中文字幕永久在线观看 | 水蜜桃亚洲精品 | 国产乱码精品一区二区三区五月婷 | 婷婷久久五月天 | 97国产高清 | √天堂8资源中文在线 | 国产欧美视频一区 | 成人免费视频一区 | 国模精品一区二区三区 | 欧美日韩性视频 | 久久精品欧美 | 国内视频自拍 | 欧美日本免费 | 欧美精品黄 | 午夜激情视频 | 天天爽天天插 | 日韩免费观看一区二区三区 | 久久一久久 | 夜av| 中文字幕在线观看一区二区三区 | 91社区福利 | 99久久婷婷国产一区二区三区 | 丁香花高清在线观看完整动漫 | 欧美性天天影院 | 久久久久久久久久久网 | 长河落日电视连续剧免费观看01 | 国产免费不卡视频 | 免费黄色在线观看 | 国产精品免费电影 | 日韩视频一区二区三区四区 | 久久国产精品一区 | 依人成人| 黄色xxxxx | 国产日韩精品久久 | 国产毛毛片 | 四虎www| 五月中文字幕 | 色视频一区二区 | 国产欧美一区二区精品性色 | 亚洲国产精品人人爽夜夜爽 | 一级片大全 | 国产老女人乱淫免费可以 | 免费看国产曰批40分钟粉红裤头 | 日本一级网站 | 欧美.www | 日本免费三片在线播放 | 欧日韩精品 | 久久99婷婷 | 亚洲色偷精品一区二区三区 | 中文字幕日本在线 | 免费九九视频 | 久久亚洲av永久无码精品 | 国产女女做受ⅹxx高潮 | 日韩涩| 国产麻豆精品在线观看 | 精品久久人人妻人人做人人 | 久草观看视频 | 欧美在线另类 | 午夜精品剧场 | 高跟鞋肉丝交足91 | 国产精品一区二区黑人巨大 | 黄视频网站在线观看 | 国产一级二级在线观看 | 成人a级网站 | 色老头在线观看 | 亚洲国产精品成人 | 毛片在线网 | 奶罩不戴乳罩邻居hd播放 | 亚洲男人网站 | 明里柚番号 | 成人性生交大片免费看vrv66 | 日本精品视频一区二区 | 日韩五月 | 荫道bbwbbb高潮潮喷 | 爱情岛论坛亚洲品质自拍 | 大香焦久久 | 日本wwwxxx| 91午夜在线观看 | 国产激情影院 | av自拍| 成熟的女同志hd | 亚洲视频123| 中文字幕一区二区三区精品 | 99在线观看 | 精品人妻一区二区三区日产 | 久久艹免费视频 | 久国产视频 | 视频区小说区图片区 | 中文字幕亚洲精品在线观看 | 色综合久久88色综合天天 | 精品国产aⅴ麻豆 | 精品人妻中文无码av在线 | 欧美一区二区三区在线看 | 一本大道av伊人久久综合 | 欧美人体视频一区二区三区 | 亚洲97色| 国产一级久久久久毛片精品 | 中文字幕乱码人妻无码久久 | 日韩一区二区欧美 |