为矢量分配内存

cod*_*212 0 c++ vector

谁能告诉我为什么这个程序崩溃了?基本上我是在尝试创建一个数组向量?

#include <iostream>
#include <stdio.h>
#include <vector>
using namespace std;

int main() {
    vector <int> arr[100];
    arr[0][0] =5;
    printf("%d",arr[0][0]);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Mat*_*her 5

您正在创建一个包含100个空矢量的数组,而不是数组矢量(为什么不是矢量矢量?).没有什么可以使用的.

用这个:

vector<vector <int>> arr(100, vector <int>(size));
Run Code Online (Sandbox Code Playgroud)

尺寸与您需要的尺寸相同.

如果需要数组向量,请使用:

vector<array<int, 100>> arr(size);
Run Code Online (Sandbox Code Playgroud)