我有一个vector< vector<string> >
并希望将字符串添加到内部 vector push_back()
。这是我尝试过的:
vector< vector<string> > sorted_word_vecs;
char word_read[MAX_WORD_LENGTH];
for(int i = 0; i < num_of_pipes; i++)
{
while (fgets(word_read, MAX_WORD_LENGTH, pipe_read_from_sort[i]) != NULL)
{
word = word_read;
sorted_word_vecs[i].push_back(word);
}
}
但是我总是遇到段错误(我已经用 cout 将其缩小到了 Push_back 行)。这是错误的做法吗?
最佳答案
您需要在外部 vector 中创建空间:
vector< vector<string> > sorted_word_vecs;
char word_read[MAX_WORD_LENGTH];
sorted_word_vecs.resize(num_of_pipes);
不这样做意味着您请求的元素不存在于 sorted_words_vecs[i
] 中。
关于c++ - 如何push_back到子 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9254682/