#include <iostream>
#include <vector>
int main()
{
std::vector<std::vector<int>> a;
a[0] = {1,2,3,4,5};
a.push_back({12,123,123,1,3,1,23});
size_t size = a.size();
std::cout << size << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
g ++编译器传递了这个程序,但是当我运行它时会出现这个错误
分段故障(核心转储)
怎么解决?如何计算此2D矢量中的所有元素?
在这里a[0] = { 1, 2, 3, 4, 5 };您访问std::vector索引0,但没有std::vector索引0,所以你访问的内存,你不拥有,这将导致分段错误!您必须先分配空间(使用resize),或使用push_back,如下一行.