前言:
今天大家对“vector定义大小”大体比较关怀,朋友们都想要知道一些“vector定义大小”的相关知识。那么小编在网摘上收集了一些有关“vector定义大小””的相关内容,希望你们能喜欢,我们快快来了解一下吧!`vector`(向量):`vector`是一种动态数组容器,可以在运行时根据需要调整大小。它提供了高效的随机访问和在末尾添加/删除元素的操作。
迭代器
vector维护的是一个连续线性空间,所以不论其元素类型为何,普通指针都可以作为vector的迭代器而满足所有必要条件,因为vector迭代器所需要的操作行为,如operator*,operator->,operator++,operator--,operator+,operator-,operator+=,operator-=,普通指针天生就具备。vector支持随机存取,而普通指针正有着这样的能力。所以,vector提供的是Random Access Iterators:
template <class T,class Alloc = alloc>class vector{public: typedef T value_type; typedef value_type* iterator; //vector的迭代器时普通指针...};分配器
vector缺省使用alloc作为空间分配器,并据此另外定义了一个data_allocator,为的是更方便以元素大小为配置单位:
template<class T,class Alloc = alloc>class vector{protected: typedef simple_alloc<value_type,Alloc> data_allocator;...};
因此,data_allocator::allocate(n)表示分配n个元素空间
demo
#include <iostream>#include <vector>int main() { // 创建一个整数类型的 vector std::vector<int> numbers = {1, 2, 3, 4, 5}; // 输出 vector 的大小 std::cout << "Vector size: " << numbers.size() << std::endl; // 访问 vector 中的元素 std::cout << "First element: " << numbers[0] << std::endl; // 修改 vector 中的元素 numbers[2] = 10; std::cout << "Updated vector: "; for (int num : numbers) { std::cout << num << " "; } std::cout << std::endl; return 0;}
标签: #vector定义大小