std::vector用数组初始化

本文详细解析了C++中向量的初始化和插入操作。通过实例展示了如何使用数组初始化`std::vector`,以及利用`insert`方法进行元素插入。重点介绍了左闭右开的原则在这些操作中的应用。

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

如:
 int values[256];
 int count = 256;
 hidl_vec<int32_t> v(std::vector<int32_t>(values, values + count));
}
//vector v的初始化含义:
首先用values数组初始化 std::vector<int32_t>(values, values + count)
vector 使用数组初始化时,为左闭右开,意思是count=256,则std::vector<int32_t>(values, values + count)为values前256个元素
则v的元素就是values前256个元素


通过insert的方式也遵循左闭右开

如: int a[4] = {1,2,3,4};
        vector<int> st;
        st.insert(st.begin(),a+1,a+3); 
        则st的元素为2和3

### 创建和操作多维数组C++ 中,`std::vector` 是一个动态数组模板类,能够方便地管理一维数组。为了创建多维数组,可以通过嵌套 `std::vector` 实现。 #### 二维数组的例子 下面展示了一个简单的例子来说明如何使用 `std::vector` 来表示并初始化一个二维整数数组: ```cpp #include <iostream> #include <vector> int main() { // 定义一个3x4的二维向量,并全部初始化为0 std::vector<std::vector<int>> matrix(3, std::vector<int>(4, 0)); // 修改某些位置上的值 matrix[0][1] = 5; matrix[2][3] = 8; // 打印矩阵的内容 for (const auto& row : matrix) { for (int val : row) { std::cout << val << ' '; } std::cout << '\n'; } return 0; } ``` 这段代码定义了一个大小固定的三维空间,其中每一行都由另一个 `std::vector<int>` 组成[^1]。 对于更高维度的情况,只需继续增加层次即可。例如,要构建一个三維陣列(即立方体),则可以在上述基础上再加一层封装: ```cpp // 构建一个两层深、每层有三个元素的一维列表组成的三维结构 std::vector<std::vector<std::vector<double>>> cube(depth, std::vector<std::vector<double>>(rows, std::vector<double>(cols))); ``` 这种做法虽然直观易懂,但在性能上可能不如固定尺寸的多维数组高效;不过它提供了更大的灵活性,在不知道确切大小的情况下特别有用。 当处理非常大的多维数据集时,考虑内存布局优化可能会带来显著的好处。比如通过调整分配顺序减少缓存未命中率等技术手段提升程序运行效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值