Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 有没有一种方法可以将元素从一个向量移动到另一个向量?_C++ - Fatal编程技术网

C++ 有没有一种方法可以将元素从一个向量移动到另一个向量?

C++ 有没有一种方法可以将元素从一个向量移动到另一个向量?,c++,C++,我想知道如何将元素从一个向量移动到另一个向量,例如,甲板向量有ace、hearts、spades。我可以将红心从牌组向量移动到玩家向量吗。我在做C++程序设计。p> vector <string> deck {"ace", "spade", "hearts"}; vector <string> player1 {}; 向量组{“王牌”、“黑桃”、“红心”}; 向量播放器1{}; 我会使用swap()函数。 像这样的方法应该会奏效: deck.swap(player1)

我想知道如何将元素从一个向量移动到另一个向量,例如,甲板向量有ace、hearts、spades。我可以将红心从牌组向量移动到玩家向量吗。我在做C++程序设计。p>
vector <string> deck {"ace", "spade", "hearts"};
vector <string> player1 {};
向量组{“王牌”、“黑桃”、“红心”}; 向量播放器1{}; 我会使用swap()函数。 像这样的方法应该会奏效:

deck.swap(player1)

希望它能起作用

player1=deck
?你试过什么?结果会怎样?@KamilCuk他要求的是
移动
而不是
复制
@KamilCuk OP要求的是“移动心脏”。我想这表示并不是移动所有的
deck
内容,比如
player1.push_back(std::move(deck[2]),加上
deck.resize(2)?注意,由于小字符串优化(由所有主要实现提供),move可能不会比copy快。结果应该是,例如,将hearts移动到player1向量。结果应该会更新向量并显示玩家1有心脏。这不是复制,这是移动,我还没有尝试过任何东西,因为不知道该怎么做。