如何在c ++中将向量的元素复制到堆栈

时间:2010-11-21 22:57:39

标签: c++ vector copy stack std

我想使用我自己制作的特殊卡片制作一堆卡片。

现在我想做的是: 我希望堆叠中的卡片更容易以后使用,但是卡片必须进行洗牌,并且在堆叠中是不可能的。

这是代码

Card dummyCard;
vector<Card> dummyVector;
initializeCards( dummyVector, dummyCard, 5 ); /* this function puts cards in vector */
random_shuffle( dummyVector.begin(), dummyVector.end() );
copy( dummyVector.begin(), dummyVector.end(), cardPile ); /* cardPile is a stack */

有关如何使这项工作的任何想法? 或者我应该将矢量作为我的替代堆栈?并使用pop_back和push_back?

2 个答案:

答案 0 :(得分:1)

这个怎么样?

#include <stack>
#include <vector>
using namespace std;

int main()
{
    vector<int> x;
    x.push_back(10); x.push_back(20); x.push_back(30);

    stack< int,vector<int> > stack(x);

    return 0;
}

答案 1 :(得分:1)

您可以迭代矢量并逐个推送元素

for (vector<Card>::iterator i = dummyVector.begin(); i != dummyVector.end(); i++) {
  cardPile.push(*i);
}