静态数组:int arr[] = {0, 1, 2, 3, 4, 5};
动态数组:std::vector<int> arr = {0, 1, 2, 3, 4, 5};
- 内存管理:
int arr[]
: 这是一个静态数组,大小在编译时确定。它们的内存空间是在栈上分配的,生命周期在定义它们的作用域内。数组的大小是固定的,不能动态更改。std::vector<int> arr
: 这是一个动态数组,大小可以在运行时进行调整。向量使用动态内存分配,它们的内存空间是在堆上分配的,生命周期在它们所在的作用域结束时自动释放。
- 大小调整:
int arr[]
: 静态数组的大小在声明时确定,不能在运行时改变。std::vector<int> arr
: 向量的大小可以在运行时通过push_back()
、pop_back()
、resize()
等方法进行调整。
- 传递和返回:
int arr[]
: 在函数参数中传递静态数组时,通常需要使用指针或引用,并且大小信息可能会丢失。返回静态数组也会遇到同样的问题。std::vector<int> arr
: 向量可以直接作为函数参数传递和返回,因为它们是对象,可以被复制或移动。
获取数组长度:
int arr[]
#include
int main() {
int arr[] = {0, 1, 2, 3, 4, 5};
int length = sizeof(arr) / sizeof(arr[0]);
std::cout << "Length of the array: " << length << std::endl;
return 0;}
std::vector<int> arr
#include <iostream>
#include <vector>
int main(){
std::vector<int> arr = {0, 1, 2, 3, 4, 5};
int length = arr.size();
std::cout << "Length of the array: " << length << std::endl;
return 0;
}