ベクトルの2つの要素、例えばstd :: vectorを接続する方法がC++にあるかどうかを知りたいのですが、一方が変更された場合は自動的に変更されます。そうでない場合は、他の方法がありますか?ベクトルの2つの要素を接続する方法は?
ありがとうございました。
ベクトルの2つの要素、例えばstd :: vectorを接続する方法がC++にあるかどうかを知りたいのですが、一方が変更された場合は自動的に変更されます。そうでない場合は、他の方法がありますか?ベクトルの2つの要素を接続する方法は?
ありがとうございました。
同じ種類のObject
のインスタンスを含む2つのベクトルがあるとします。そして、shared_ptr<Object>
を使用して、あなたが同じオブジェクトを参照することができます。今すぐ
vector<shared_ptr<Object>> v1;
vector<shared_ptr<Object>> v2;
for(int i=0;i<3;i++) {
v1.push_back(shared_ptr<Object>(new Object()));
v2.push_back(v1[i]);
}
を使用すると、1つのベクトルのオブジェクトのプロパティを編集した場合、対応するオブジェクトも更新されます。
v1[0]->value = 12;
cout << v2[0]->value << endl; // print 12
class A {
... Your class definition
public:
int x;
};
typedef std::shared_ptr<A> APtr;
typedef std::vector<APtr> AVect;
AVect v;
APtr ptr_a = std::make_shared<A>(); //using std::make_shared<> is better than naked new allocations in code.
v.push_back(ptr_a);
v.push_back(ptr_a);
v[0]->x = 3; //modifies v[1] as well
あなたがすることができます'std :: shared_ptr'をベクトルに格納してください。あなたの質問にタグを付けたように、あなたはすでにそれを試しましたが、それはあなたのためには機能しませんでしたか? –
@πάνταῥεanswer答えをありがとう。私はC++に比較的新しいです、std :: vectorを使うべきですか? –
Eman
'std :: vector>' yesを使うべきです。 –