c++vector大量赋值
时间: 2023-11-08 21:03:02 浏览: 141
对于大量的赋值,可以使用 `resize` 函数先为 vector 分配好内存空间,然后使用循环赋值或者 `std::copy` 函数来快速进行赋值。示例如下:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vec;
const int n = 1000000;
vec.resize(n); // 预先分配内存空间
// 循环赋值
for (int i = 0; i < n; i++) {
vec[i] = i;
}
// std::copy 赋值
std::vector<int> vec2;
vec2.resize(n);
std::copy(vec.begin(), vec.end(), vec2.begin());
return 0;
}
```
相关问题
C++ vector 容器赋值
C++的`std::vector`是一个动态数组容器,它允许你在运行时添加、删除元素。当你想要将一个`vector`的所有内容复制到另一个`vector`时,可以使用赋值操作符`=`, 或者专门用于此目的的`assign()`函数。
**直接赋值(Copy Assignment):**
```cpp
std::vector<int> vec1; // 假设vec1已初始化
std::vector<int> vec2 = vec1; // 这里vec2现在拥有vec1的所有元素
// 如果vec1的内容改变,vec2也会随之改变,因为它们共享了相同的内存区域。
```
**使用`assign()`函数:**
```cpp
std::vector<int> vec1;
// ... (填充vec1)
std::vector<int> vec2; // 空的vec2
vec2.assign(vec1.begin(), vec1.end()); // 将vec1的所有元素复制到vec2
```
`assign()`函数接受两个迭代器,第一个指向源范围的开始,第二个指向结束,所以不会改变源向量。
c++ vector 数组赋值
C++中的vector是一种动态数组,可以在运行时根据需要自动调整大小。如果要将一个vector数组赋值给另一个vector数组,可以使用赋值运算符或assign函数。赋值运算符将源数组的元素逐个赋值给目标数组,而assign函数可以用来将源数组的元素赋值给目标数组。
使用赋值运算符的示例代码如下:
```cpp
std::vector<int> source = {1, 2, 3, 4, 5};
std::vector<int> target;
target = source;
```
使用assign函数的示例代码如下:
```cpp
std::vector<int> source = {1, 2, 3, 4, 5};
std::vector<int> target;
target.assign(source.begin(), source.end());
```
以上代码中,source是源数组,target是目标数组。通过赋值运算符或assign函数,将source中的元素赋值给target。
阅读全文