Vector动态数组的创建以及初始化

本文深入探讨Vector动态数组的特性,包括其本质为可变长的连续存储数组,能从尾部或其他任意位置插入元素,以及在内存中位置的动态变化。文章通过实例展示了Vector动态数组的创建与初始化方法,如使用数组、列表、迭代器和直接指定大小并初始化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Vector动态数组的创建以及初始化

Vector动态数组的特点

① vector动态数组本质上也是数组,它是根据自己不断变化的元素个数,不断寻找适合自己的连续的存储空间,切记:vector动态数组的存储空间与静态数组相同是在内存中连续分布的;

② vector动态数组可以从数组尾部不断插入新的元素,但是不仅限于尾部,其他地方均可插入元素;

③ vector动态数组不止长度在变化,它在内存中的位置也在发生变化,由于需要寻找适合存储自己的连续的内存区域,因此vector数组操作大量元素时效率有点低下;

④ vector动态数组有数组的特点,即占用连续的存储区域,因此它可以用下标进行访问,又由于vector是个模板类,类中重载了丰富的成员函数和运算符,因此动态数组可以相互赋值和初始化(初始化还有许多其他方法)。

Vector动态数组的建立与初始化

#include <iostream>  
#include <vector>  
using namespace std;  
  
int main()  
{  
    int array1[5] = { 11,12,13,14,15 };  
    vector<int> list = { 1,2,3,4,5 }; // vector是个模板类  
    vector<int> list1(list); // 拷贝赋值方式  
    vector<int> list0 = list1; // 运算符赋值方式  
    vector<int> list2(list1.begin(), list1.end()); // 用首尾地址进行初始化  
    vector<int> list3(array1, array1 + sizeof(array1) / sizeof(int)); // 用首尾地址进行初始化  
    vector<int> list4(4,0); // 先申请4个动态存储空间并且全部初始化为0
} 

 

 

### 创建动态数组Vector)的方法 在现代 C++ 中,推荐使用 `std::vector` 来替代传统的 C 风格数组[^2]。`std::vector` 是标准模板库 (STL) 的一部分,提供了动态调整大小的功能以及许多有用的成员函数。 #### 使用 std::vector 创建动态数组创建一个动态数组,可以按照如下方式操作: ```cpp #include <iostream> #include <vector> int main() { // 定义一个整数类型的向量 std::vector<int> vec; // 向向量中添加元素 vec.push_back(10); vec.push_back(20); vec.push_back(30); // 输出向量中的元素数量 std::cout << "Size of vector: " << vec.size() << "\n"; // 访问并打印向量中的每一个元素 for(size_t i = 0; i < vec.size(); ++i){ std::cout << "Element at index " << i << ": " << vec[i] << "\n"; } return 0; } ``` 上述代码展示了如何声明一个空的 `std::vector<int>` 类型变量,并通过调用其成员方法来填充数据。还可以利用迭代器遍历容器内的所有项,或者采用范围for循环简化语法: ```cpp // 范围for循环访问元素 for(auto& elem : vec){ std::cout << elem << ' '; } ``` 此外,在初始化时也可以指定初始容量或直接赋初值列表给它: ```cpp // 初始化具有特定长度和默认值的向量 std::vector<double> doubleVec(5, 3.14); // 使用初始化列表构建向量 std::vector<std::string> stringVec{"hello", "world"}; ``` 这些特性使得 `std::vector` 成为了处理可变尺寸序列的理想选择之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肥肥胖胖是太阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值