如何填充结构的向量
Posted
技术标签:
【中文标题】如何填充结构的向量【英文标题】:How to fill a vector of struct 【发布时间】:2014-01-20 18:11:15 【问题描述】:我有以下代码,其中我定义了一个向量的向量结构
#include <vector>
#include <iostream>
using namespace std;
struct node
int index;
double value;
;
int main()
vector < vector <node> >vett1;
node p;
p.index=5;
p.value=2;
for (int i=0; i<10; i++)
vett1[i].push_back(p);
return 0;
我不知道填充它的正确方法。这样,当我运行它时,编译器会给我分段错误错误。
【问题讨论】:
【参考方案1】:当您访问vett1[i]
,但vett1
尚未填充大小为零。这就是发生分段错误错误的原因。
三种修复方法:
添加
vett1.resize(10);
for
循环之前。
或者定义vett1
并设置其大小如下:
vector <vector <node>> vett1(10);
如果您不知道确切的尺寸,也可以这样做:
for (int i=0; i<10; i++)
vector<node> temp;
temp.push_back(p);
vett1.push_back(temp);
【讨论】:
如果我不知道向量的确切大小怎么办?我想用与 push_back 方法相同的方式填充它?以上是关于如何填充结构的向量的主要内容,如果未能解决你的问题,请参考以下文章