谁能告诉我该程序为什么崩溃? 基本上我是在尝试创建数组向量?
#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;
}
答案 0 :(得分:5)
您正在创建一个由100个空向量组成的数组,而不是数组的向量(为什么不是向量的向量?)。没有什么可使用的。
使用此:
vector<vector <int>> arr(100, vector <int>(size));
具有您所需的尺寸。
如果要向量数组,请使用:
vector<array<int, 100>> arr(size);
答案 1 :(得分:2)
因为您没有在vector
中分配元素。您将std::vector
与静态数组混淆了,它们需要调用.push_back()
或进行预分配。
因此在您的代码中arr[0]
将起作用,因为在arr[0][0]
崩溃时,这是对静态数组的第一个元素的引用。
尝试
arr[0].push_back(5)