我有一个链表类:
template <class T> class List {
private:
struct node {
T info;
node* next;
node* prev;
};
int length;
node* first;
node* last;
...
}
我必须添加一个函数,它接受数字增加或相等的子列表,并将rhem存储在std :: vector中。 示例:如果列表为:(1,2,3,2,3,3),v [0] =(1,2,3),v [1] =(2,3,3)。 该函数的标题是:
void parts(std::vector<List>& v) {}
/* Pre: v.size() == 0
* Post: The original list is empty, v.size() = number of sublists,
* v[i] is the ith sublist */
我发现自己是一个解决方案,但我已经使用v.push_back()将每个子列表添加到向量中,但是我的老师说我不能使用它而我不知道怎么做没有push_back()就可以做到。 感谢。
答案 0 :(得分:0)
有一大堆其他方法可以添加/初始化向量。您可以从列表中传递一系列迭代器,其中一个:
vector<int> v(list.begin(), list.end();
您可以替换[begin,end)
的任何有效迭代器