大佬教程收集整理的这篇文章主要介绍了C++ STL vector容量(capacity)和大小(size)的区别,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
#include <iostream> #include <vector> using namespace std; int main() { std::vector<int>value{ 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47 }; value.reserve(20); cout << "value 容量是:" << value.capacity() << endl; cout << "value 大小是:" << value.size() << endl; return 0; }程序输出结果为:
value 容量是:20
value 大小是:15
#include <iostream> #include <vector> using namespace std; int main() { vector<int>value{ 2,47 }; cout << "value 容量是:" << value.capacity() << endl; cout << "value 大小是:" << value.size() << endl; printf("value首地址:%p\n",value.data()); value.push_BACk(53); cout << "value 容量是(2):" << value.capacity() << endl; cout << "value 大小是(2):" << value.size() << endl; printf("value首地址: %p",value.data()); return 0; }运行结果为:
value 容量是:15
value 大小是:15
value首地址:01254D40
value 容量是(2):22
value 大小是(2):16
value首地址: 01254E80
#include <iostream> #include <vector> using namespace std; int main() { vector<int>value{ 2,47 }; cout << "value 容量是:" << value.capacity() << endl; cout << "value 大小是:" << value.size() << endl; value.reserve(20); cout << "value 容量是(2):" << value.capacity() << endl; cout << "value 大小是(2):" << value.size() << endl; //将元素个数改变为 21 个,所以会增加 6 个默认初始化的元素 value.resize(21); //将元素个数改变为 21 个,新增加的 6 个元素默认值为 99。 //value.resize(21,99); //当需要减小容器的大小时,会移除多余的元素。 //value.resize(20); cout << "value 容量是(3):" << value.capacity() << endl; cout << "value 大小是(3):" << value.size() << endl; return 0; }运行结果为:
value 容量是:15
value 大小是:15
value 容量是(2):20
value 大小是(2):15
value 容量是(3):30
value 大小是(3):21
vector<int>::size_type cap = value.capacity(); vector<int>::size_type size = value.size();size_type 类型是定义在由 vector 类模板生成的 vecotr 类中的,它表示的真实类型和操作系统有关,在 32 位架构下普遍表示的是 unsigned int 类型,而在 64 位架构下普通表示 unsigned long 类型。
auto cap = value.capacity(); auto size = value.size();
以上是大佬教程为你收集整理的C++ STL vector容量(capacity)和大小(size)的区别全部内容,希望文章能够帮你解决C++ STL vector容量(capacity)和大小(size)的区别所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。