pop_back()在std :: list中返回值?

时间:2017-07-04 18:26:39

标签: c++ list pop

我对此感到困惑,pop_back()std :: list方法没有返回值,但是如何从某个列表中获取值并将其存储在另一个列表中,例如整数列表?

我认为这很容易,但我不熟悉C ++,我试图找到解决方案,但也许在这里我可以得到关于如何做到这一点的具体答案。

1 个答案:

答案 0 :(得分:1)

pop_back()返回对已删除元素的引用是不可取的,因为引用将立即指向无效元素。如果您想将列表的最后一个元素复制到另一个元素然后从第一个列表中删除该元素,则可以使用以下代码。如果您不需要删除该元素,只需省略对std :: list :: pop_back()的调用。

std::list<int> firstList{1, 2, 3, 4, 5, 6};
std::list<int> secondList{1, 2, 3, 4};
secondList.push_back(firstList.back()); //the 6 from firstList has now been copied to secondList
firstList.pop_back(); //the 6 from firstList has now been removed