【发布时间】:2014-02-24 03:06:32
【问题描述】:
所以我正在尝试编写一个函数,它接受两个参数list<item> myList 和int num_items,并创建一个新列表向量。每个项目都有数据成员 ID,它是该项目应该添加到哪个列表的向量中的索引。任何项目的 ID 都保证不大于 (num_items - 1)。这是我的代码:
vector<list<item>> createVector(list<item> myList, int num_items) {
vector<list<item>> myVector;
myVector.reserve(num_items);
for(item& i : myList)
myVector[i.ID].push_back(i);
return myVector;
}
每当我尝试调用 push_back() 将项目添加到向量中的列表时,这都会导致分段错误。我知道如何使用指针来实现函数,但是函数返回的类型必须是列表的实际向量而不是指向它们的指针,所以我不能使用动态内存分配。任何帮助将不胜感激。谢谢。
【问题讨论】: