Stlに関する最新の質問

1
答える

オブジェクトをコピー可能にせずに、constメンバーの移動専用オブジェクトを作成するにはどうすればよいですか?

#include<algorithm> #include<vector> #include<memory> class Foo { public: Foo(); #if 1 // Destructor for rule of 5. ~Foo(){} // Move constructor yes. Foo(Foo&&) noexcept=default; // Move assignment probably won't actually be created because const member variable. // Do I need it though? Why would vector need to move-assign? Foo& operator=(Foo&&) noexcept=default; // Copy no. Foo(const Foo&)=delete; Foo& operator=(const Foo&)=delete; #endif protected: // It works if non-const. Broken if const. const std::unique_ptr<int> ptr; }; int main() { std::vector<Foo> bar; bar.reserve(1); } #include<algorithm> #include<vector> #include<memory> class Foo { public: Foo(); #if 1 // Destructor for rule of 5. ~Foo(){} // Move constructor yes. Foo(Foo&&) noexcept=default; // Move assignment probably won't actually be created because const member variable. // Do I need it though? Why would vector need to move-assign? Foo& operator=(Foo&&) noexcept=default; // Copy no. Foo(const Foo&)=delete; Foo& operator=(const Foo&)=delete; #endif protected: // It works if non-const. Broken if const. const std::unique_ptr<int> ptr; }; int main() { std::vector<Foo> bar; bar.reserve(1); } #include #include #include クラスFoo { 公衆: Foo(); #if 1 //ルール5のデストラクタ。 〜Foo(){} //コンストラクターを移動しますyes。 Foo(Foo&&) noexcept=default; // constメンバー変数のため、ムーブ代入はおそらく実際には作成されません。 //でも必要ですか?ベクトルがムーブ代入する必要があるのはなぜですか? Foo&operator=(Foo&&) noexcept=default; //コピー番号 Foo(const Foo&)=delete; Foo&operator=(const Foo&)=delete; #endif 保護: //非constの場合は機能します。 constの場合は壊れています。 const std::unique_ptrptr; }; int main() {{ std::vectorバー; bar.reserve(1); } エラーが発生します(GCCを使用):

move semantics vector c++ stl

1
答える

オンラインジャッジには線形ベクトル検索が遅すぎる

問題の説明:ベクトルを入力する必要があり、特定の数のクエリがあります。ある特定のクエリでは、ベクトルでその番号を検索する必要があります。見つかった場合は「はい」を出力し、見つからなかった場合はクエリの次に大きい数値を出力して「いいえ」を出力します。 ベクトルはソートされています。

c++ vector stl

1
答える

2つのベクトルを合計し、stlアルゴリズムを保存します[重複]

この質問にはすでに回答があります: How do I perform a pairwise binary operation between the elements of two containers? (3つの答え) 閉鎖4日前。 この質問にはすでに回答がありますこの質問にはすでに回答があります: How do I perform a pairwise binary operation between the elements of two containers? 2つのコンテナの要素間でペアワイズ二項演算を実行するにはどうすればよいですか? (3つの答え) (3つの答え) 4日前4日前に閉鎖されました。 2つのベクトルがあり、次のようなことをしたい

stl c++

1
答える

std::iteratorは一種のauto_ptrから継承していますか?

私はSTLの初心者です。 STLを学習するためにtoystlをコーディングしようとしています。イテレータについてコーディングするとき、最初に単純なauto_ptrをコーディングして、それから継承する必要があるかどうか戸惑います。

stl c++

ホットタグ

© 2021   KonnichiwaSekai.Com