C++ STL vector的容量
生活随笔
收集整理的這篇文章主要介紹了
C++ STL vector的容量
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
關(guān)于vector的容量:
vs:如果容量不夠時(shí),增加現(xiàn)有容量的一半(向下取增);
vc6.0:如果容量不夠時(shí),增加現(xiàn)有容量的一倍;
關(guān)于vector的大小:
size()為vector中元素的個(gè)數(shù),和容量要區(qū)別開。
代碼如下:
#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個(gè)元素vec1.push_back(1);cout << vec1.capacity() << endl;vec1.push_back(1);cout << vec1.capacity() << endl; //增加已存在空間的一半(向下取整)進(jìn)行擴(kuò)容//VC6.0容量不夠時(shí),增加現(xiàn)有容量的一倍//重設(shè)容量//reserve() 不能變小,只能變大vec1.reserve(100);cout << vec1.capacity() << endl;vec1.reserve(2); //就算調(diào)用這個(gè),也不會(huì)有效果cout << vec1.capacity() << endl;//size()是元素的個(gè)數(shù)//resize()重設(shè)元素個(gè)數(shù),不改變大小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; }運(yùn)行結(jié)果如下:
總結(jié)
以上是生活随笔為你收集整理的C++ STL vector的容量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qml学习笔记-Repeater的基本使
- 下一篇: Qt工作笔记-QTreeWidgetIt