静态数组:int arr[] = {0, 1, 2, 3, 4, 5};

动态数组:std::vector<int> arr = {0, 1, 2, 3, 4, 5};

  1. 内存管理:
  • int arr[]: 这是一个静态数组,大小在编译时确定。它们的内存空间是在栈上分配的,生命周期在定义它们的作用域内。数组的大小是固定的,不能动态更改。
  • std::vector<int> arr: 这是一个动态数组,大小可以在运行时进行调整。向量使用动态内存分配,它们的内存空间是在堆上分配的,生命周期在它们所在的作用域结束时自动释放。
  1. 大小调整:
  • int arr[]: 静态数组的大小在声明时确定,不能在运行时改变。
  • std::vector<int> arr: 向量的大小可以在运行时通过 push_back()pop_back()resize() 等方法进行调整。
  1. 传递和返回:
  • 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;
}