C++中vector赋值和取值
时间: 2024-11-09 14:09:56 浏览: 54
在C++中,`std::vector`是一种动态数组,它允许我们在运行时添加或删除元素。关于赋值和取值操作:
1. **赋值**:你可以通过`=`运算符将一个已有的`vector`复制到另一个`vector`,或者直接将整个容器赋给另一个容器,比如:
```cpp
std::vector<int> vec1 = {1, 2, 3};
std::vector<int> vec2; // 空的vector
vec2 = vec1; // 将vec1的内容复制给vec2
// 或者,使用初始化列表:
std::vector<int> vec3(vec1); // 直接复制内容
```
如果要合并两个向量而不复制数据,可以使用`insert`函数:
```cpp
vec2.insert(vec2.end(), vec1.begin(), vec1.end()); // 直接将vec1追加到vec2的末尾
```
2. **取值**:访问`vector`中的元素通常使用下标,例如 `vec[index]`。也可以使用`at`或`[]`运算符获取元素,但要注意索引越界会抛出异常。另外,还可以使用迭代器遍历元素:
```cpp
int value = vec1[0]; // 获取第一个元素
for (int i : vec2) { // 遍历所有元素
std::cout << i << " ";
}
```
相关问题
C++ 有相同长度指针A,B,C ,将三个指针的按顺序取值并赋值到vector中
可以按照以下方式实现:
```c++
int* A, * B, * C;
vector<int> vec;
int arr[3] = {*A, *B, *C};
for (int i = 0; i < 3; i++) {
vec.push_back(arr[i]);
}
```
首先,声明三个指向 int 类型的指针 A、B、C,它们的长度相同。然后,声明一个 vector<int> 类型的 vec 用于存储指针指向的值。
接下来,将指针 A、B、C 按顺序取值,并将它们保存在一个长度为 3 的 int 数组 arr 中。最后,使用 for 循环将 arr 中的元素依次添加到 vec 中。
需要注意的是,这里没有对指针 A、B、C 进行初始化,需要在使用前确保它们指向了有效的内存空间。
C++ 有三个同等长度的指针 A,B,C ,用这三个指针按顺序从0到n进行分别取值,赋值到vector里面,
可以使用一个 for 循环来实现这个功能。具体代码如下:
```c++
int n = 10; // n 表示指针的长度
int* A = new int[n];
int* B = new int[n];
int* C = new int[n];
std::vector<int> vec;
// 对 A, B, C 进行赋值
for (int i = 0; i < n; i++) {
vec.push_back(A[i]);
vec.push_back(B[i]);
vec.push_back(C[i]);
}
```
首先定义了三个指针 A、B、C,它们都指向一个长度为 n 的整型数组。然后定义了一个 vector 容器,用于存储取值后的结果。
接下来就是 for 循环的部分。循环 0 到 n-1,每次将 A[i]、B[i]、C[i] 的值依次插入到 vector 中。这样就实现了将三个指针按顺序从 0 到 n 进行取值,并赋值到 vector 里面的功能。
阅读全文