固定サイズの配列への共有ポインタをベクトルに格納しようとしていますが、共有ポインタを使用したいのは、配列へのポインタを別のクラスに渡す必要があるからです。配列に書き込むと、複数の配列を持たせたいと思います。なぜなら、書き込みクラスのインスタンスが増え、書き込む配列が必要なため、配列内にたくさんのデータを書き込むので、それらを動かすことはできません。良いオプション。ベクトルの配列への共有ポインタの格納
std::shared_ptr<char> sp(new char [MAX_LENGTH], std::default_delete<char[]>());
arrayVect.push_back(sp);
のようなベクターは、クラスのメンバとして定義されています。私は、エラーを取得しています
std::vector< std::shared_ptr< char [ MAX_LENGTH ] > > arrayVect;
:
error: no matching function for call to ‘std::vector<std::shared_ptr<char [MAX_LENGTH]> >::push_back(std::shared_ptr<char []>&)’
私は別の選択肢を試してみましたが、それらのどれも働いていない、できましたあなたはそれを行う正しい方法を指摘していますか?または私が紛失している代替手段がありますか?書き込みクラスは書き込み関数用の文字配列を必要とするので、配列がついていると思います。
ありがとうございました!
'のstd ::ベクトル<はstd :: shared_ptrの> arrayVect;' –
CinCout
は、単一文字への共有ポインタのベクトルではないWhould? *(arrayVect.at(0))[1] などのようなものにアクセスしたい場合はどうすればいいですか? –
いいえ、それは単一の文字へのポインタにはなりません。実際には、配列は一般的にポインタに減衰します。 –