C++ STL vector的容量
生活随笔
收集整理的這篇文章主要介紹了
C++ STL vector的容量
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
關于vector的容量:
vs:如果容量不夠時,增加現有容量的一半(向下取增);
vc6.0:如果容量不夠時,增加現有容量的一倍;
關于vector的大小:
size()為vector中元素的個數,和容量要區別開。
代碼如下:
#define _SCL_SECURE_NO_WARNINGS#include <vector> #include <iostream> #include <windows.h> using namespace std;int main(){vector<int> vec;cout << vec.capacity() << endl;vector<int> vec1(5);cout << vec1.capacity() << endl;vec1.push_back(1);cout << vec1.capacity() << endl; //空間變成7了,但只有6個元素vec1.push_back(1);cout << vec1.capacity() << endl;vec1.push_back(1);cout << vec1.capacity() << endl; //增加已存在空間的一半(向下取整)進行擴容//VC6.0容量不夠時,增加現有容量的一倍//重設容量//reserve() 不能變小,只能變大vec1.reserve(100);cout << vec1.capacity() << endl;vec1.reserve(2); //就算調用這個,也不會有效果cout << vec1.capacity() << endl;//size()是元素的個數//resize()重設元素個數,不改變大小vector<int> vec2(4);cout << vec2.size() << endl;cout << vec2.capacity() << endl;vec2.reserve(100);cout << vec2.capacity() << endl;cout << vec2.size() << endl;vec2.resize(2);cout << vec2.size() << endl;cout << vec2.capacity() << endl;cout << vec2.empty() << endl;vec2.resize(0);cout << vec2.empty() << endl;system("pause");return 0; }運行結果如下:
總結
以上是生活随笔為你收集整理的C++ STL vector的容量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qml学习笔记-Repeater的基本使
- 下一篇: Qt工作笔记-QSS中关于QCombox