c++ - 如何push_back到子 vector ?

标签 c++ vector push-back

我有一个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/

相关文章:

c++ - 使用 Opengl 在 Window 上显示菜单

c++ - Windows 上的任何原生 XML DOM 都可以控制内存分配吗?

c++ - 如何创建模板化对象的数组/vector

C++/二维 vector 的大小

c++ - 声明 vector 的 protected 指针的问题

c++ - Clang 隐含地包含一堆不需要的 header

c++ - gcc的 "__builtin_popcount"是怎么工作的?

c++ - 结构 vector push_back C++

Android 致命信号 7 (SIGBUS),代码 1,故障地址 0xb8509ce1 in tid 32190 (com.example)

c++ - vector 错误,无法使 push_back 工作