要素を特定の型(T1)のベクトルからベクトルに移動する最も正確で効率的な方法は何ですか?同じタイプ(T1)と別のタイプ(T2)のstd :: pairのペア?std :: vectorから要素を移動する<T1>からstd :: vector <std :: pair <T1,T2>>
つまり、MoveItems()はどのように記述する必要がありますか?
#include <iostream> // For std::string
#include <string> // For std::string
#include <vector> // For std::vector
#include <utility> // For std::pair
using std::vector;
using std::string;
using std::pair;
vector<string> DownloadedItems;
vector<pair<string,bool>> ActiveItems;
vector<string> Download()
{
vector<string> Items {"These","Words","Are","Usually","Downloaded"};
return Items;
}
void MoveItems()
{
for (size_t i = 0; i < DownloadedItems.size(); ++i)
ActiveItems.push_back(std::pair<string,bool>(DownloadedItems.at(i),true));
}
int main()
{
DownloadedItems = Download();
MoveItems();
return 0;
}
ありがとうございます。本当にありがとうございます。
ありがとうございます。しかし、 'emplace_back'を呼び出しても元の文字列のコピーを作成しています。 'DownloadedItems'の値を表示するには、MoveItems()を実行した後もまだそこにいます。 –
はい、一時的な' std :: pair'を作っていないので、それを元に戻していません。ペアをインプレースで作っています。 – druckermanly