私はstd :: copyの作業を行うことができませんでした。私はインターネットでいくつかのコードを試しましたが、動作させることができませんでした。私はコピーを使用する必要があります。なぜなら、クラスのコンストラクタでそれを使用する理由は理解できません(コンストラクタで新しい変数を宣言することはできません)。std :: copyの使い方は? OSXSierra/CLION/C++ 11では動作しません。
私はこのコードを持っている:
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> myVector;
vector<int> vectorCopy;
for (int i = 0; i < 10; i++) {
myVector.push_back(i);
}
cout << vectorCopy.size() << endl; //0
vectorCopy.reserve(myVector.size());
cout << vectorCopy.size() << endl; //PROBLEM: again 0
copy(myVector.begin(), myVector.end(), vectorCopy.begin());
cout << vectorCopy.size() << endl; //PROBLEM 2: again 0
for (int j = 0; j < vectorCopy.size(); j++) {
cout << vectorCopy[j] << endl;//never execute;
}
/* Enter your code here. Read input from STDIN. Print output to STDOUT */
return 0;
}
任意のアイデア?私はMacOS SierraとC++ 11でCLIONを使用しています。
ありがとうございます!
「作業していない」ことについて詳しく説明できますか?どのようなエラーが表示されますか? –
なぜ 'std :: copy'が必要なのかは明らかではありません(使用方法を理解する以外には) – juanchopanza
"働かない "という意味は、ベクターがコピーされていないことを意味します。 codeCopyのサイズが0であるため) – Werem