c++ 数组与vector
时间: 2023-08-14 21:13:15 浏览: 77
C++ 中的数组和 vector 都是用来存储多个元素的容器,但它们有一些区别。
数组是一种固定大小的容器,它在声明时需要指定长度,并且长度不能改变。数组中的元素在内存中是连续存储的,可以通过索引访问和修改元素。数组的声明方式如下:
```cpp
int arr[5]; // 声明一个包含 5 个整数的数组
```
使用数组时,需要注意数组的下标从 0 开始,所以访问第一个元素的下标是 0,访问最后一个元素的下标是数组长度减一。
Vector 是 C++ 标准库中提供的动态数组容器,它可以根据需要动态调整大小。Vector 中的元素在内存中也是连续存储的,可以通过索引访问和修改元素,还提供了一系列方便的成员函数用于添加、删除和访问元素。Vector 的声明方式如下:
```cpp
#include <vector>
std::vector<int> vec; // 声明一个整数类型的 vector
```
Vector 的大小可以随时改变,可以使用 `push_back()` 函数向 vector 的末尾添加元素,也可以使用 `pop_back()` 函数删除末尾的元素。
总结一下,数组适用于已知大小且不需要频繁改变大小的情况,而 vector 适用于需要动态调整大小的情况。
相关问题
c++ 数组转vector
以下是C++中将普通数组转换为vector的方法:
方法一:使用循环遍历数组并逐个添加到vector中。
```cpp
#include <iostream>
#include <vector>
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
std::vector<int> vec;
for (int i 0; i < size; i++) {
vec.push_back(arr[i]);
}
// 输出vector中的元素
for (int i = 0; i < vec.size(); i++) {
std::cout << vec[i] << " ";
}
return 0;
}
```
方法二:使用vector的构造函数,将数组的起始地址和结束地址作为参数传递给构造函数。
```cpp
#include <iostream>
#include <vector>
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
std::vector<int> vec(arr, arr + size);
// 输出vector中的元素
for (int i = 0; i < vec.size(); i++) {
std::cout << vec[i] << " ";
}
return 0;
}
```
c++数组转vector
C++中可以标准库中的vector容器来实数组转换为vector的操作。下面一种常见的方法:
1. 首先,包含>头文件,以便使用vector容器2. 创建一个数组,并初始化数组元素。
3. 使用vector的构造函数,将数组作为参数传递给构造函数,创建新的vector对象下面是示例代码:
```cpp
#include <iostream>
#include <vector>
int main() {
int arr[] = {1, 2, 3, 4, 5}; // 假设有一个整型数组
// 将数组转换为vector
std::vector<int> vec(arr, arr + sizeof(arr) / sizeof(int));
// 打印vector中的元素
for (int i = 0; i < vec.size(); i++) {
std::cout << vec[i] << " ";
}
return 0;
}
```
输出结果为:1 2 3 4 5,即将数组成功转换为了vector。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)