だから私がやりたいことは、私のプログラムの既存のベクトルクラスを拡張して、これを言うことができるようにすることです.
vector<string>* vec = new vector<string>(){"Value1","Value2"};
また
vector<string>* vec = new vector<string>({"Value1","Value2"});
また
vector<string> vec = {"Value1","Value2"};
私はこのようなことを達成できることを知っていますが、これを行うと、
string temp[] = {"Value1","Value2"};
vector<string> vec(temp, temp+ sizeof(temp) / sizeof( temp[0] ) );
これはベクトル反復子コンストラクターを使用しますが、余分な行を削除できませんか?
partial
C# では、次のようなキーワードを使用して、既存のものに何でも追加できることを知っています。
public partial class ClassName
{
ClassName(Stuff stuff)
{
}
void AmazingNewMethod()
{
}
}
C++ には、このような気の利いたトリックがどこかにありますか?
ベクトルを継承customVector
し、舞台裏でイテレータ コンストラクタを実行するコンストラクタを持つ a を構築する必要がありますか?
これらの行を参照によって設定する静的なヘルパー関数呼び出しでラップし、どこかのツールボックス クラスに追加しますか?
多くのプログラマーがこの問題にぶつかったように感じます。そこにエレガントなソリューションはありますか?
ありがとう。
編集:これが Initializer List コンストラクターであることを示すようにタイトルを修正しました。