問題タブ [stl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
34502 参照

c++ - std::swap() をオーバーロードする方法

std::swap()は、並べ替えや代入時にも多くの std コンテナー ( や など) で使用されstd::listます。std::vector

しかし、 の std 実装swap()は非常に一般化されており、カスタム型に対してはかなり非効率的です。

したがってstd::swap()、カスタム型固有の実装でオーバーロードすることで効率を高めることができます。しかし、std コンテナーで使用されるように実装するにはどうすればよいでしょうか?

0 投票する
8 に答える
1421 参照

c++ - このコードは STL の find_if の悪用ですか?

ベクトルに保存されているサーバー名のリストがあり、1 つが正常に応答するまで一度に 1 つずつ連絡したいとします。STL の find_if アルゴリズムを次のように使用することを考えていました。

ここで、ContactServer は述語関数オブジェクトです。
一方では、述語が同じサーバー名に対して常に同じ結果を返すとは限らないため、問題があります (サーバーのダウンタイム、ネットワークの問題などのため)。ただし、述語のどのコピーが使用されても (つまり、述語に実際の状態がない)、同じ結果が返されるため、この場合、状態保持述語の元の問題は関係ありません。

あなたは何を言っていますか?

0 投票する
29 に答える
17380 参照

c++ - どのような C++ の落とし穴を回避する必要がありますか?

STL でベクトルについて最初に学んだことを覚えています。しばらくして、自分のプロジェクトの 1 つで bool のベクトルを使用したいと思いました。いくつかの奇妙な動作を見て、いくつかの調査を行った後、 bools のベクトルは実際には bools のベクトルではないことがわかりました。

C++ で避けるべき一般的な落とし穴は他にありますか?

0 投票する
10 に答える
26639 参照

c++ - std::fstream クラスが std::string を取らないのはなぜですか?

これは設計上の問題ではありませんが、そのように思えるかもしれません。(まあ、それは一種の設計上の問題です)。私が疑問に思っているのは、なぜ C++std::fstreamクラスがstd::stringコンストラクターまたはオープン メソッドで を使用しないのかということです。誰もがコード例が大好きなので:

これは、ファイルを操作するときに常に私を悩ませます。確かにC++ライブラリはstd::string可能な限り使用しますか?

0 投票する
3 に答える
1452 参照

c++ - C ++ STLの質問:アロケータ

C ++ STLについて(ばかげている可能性がある)質問があります。コンテナ(ベクトル、セット、マップなど)を作成するとき、それはスタックに割り当てられますか、それともヒープに割り当てられますか?セットを作成して500万個の文字列を配置した場合、スタックオーバーフローを心配する必要がありますか?

0 投票する
8 に答える
18838 参照

c++ - std::vector に前方宣言を使用できないのはなぜですか?

次のようなクラスを作成すると:

次のように使用します。

コンパイル時にコンパイラが失敗しmain.cppます。今私が知っている解決策は#include "B.h"ですが、なぜ失敗するのか興味があります。g++またはのどちらclのエラー メッセージも、この問題に関しては非常に啓発的ではありませんでした。

0 投票する
11 に答える
216523 参照

c++ - 特定の値を持つ stl ベクトルから項目を削除するにはどうすればよいですか?

stl vector の API ドキュメントを調べていたところ、特定の値を持つ要素を削除できるメソッドが vector クラスにないことに気付きました。これは一般的な操作のように思えますが、これを行う方法が組み込まれていないのは奇妙に思えます。

0 投票する
9 に答える
11216 参照

c++ - C ++で値セマンティクスを持つポリモーフィックコンテナーを使用できますか?

原則として、C ++ではポインターセマンティクスよりも値を使用することを好みます(つまり、vector<Class>の代わりにを使用しますvector<Class*>)。通常、パフォーマンスのわずかな低下は、動的に割り当てられたオブジェクトを削除することを覚えておく必要がないことで補われます。

残念ながら、すべてが共通ベースから派生するさまざまなオブジェクトタイプを格納する場合、値のコレクションは機能しません。以下の例を参照してください。

私の質問は次のとおりです。ケーキ(値のセマンティクス)を持って、それも食べることができますか(多形容器)?または、ポインタを使用する必要がありますか?

0 投票する
5 に答える
11074 参照

c++ - STL ベクトル vs マップ消去

STL では、ほとんどすべてのコンテナに消去機能があります。私が持っている質問はベクトルにあります.erase関数はベクトル内の次の要素を指す反復子を返します. マップ コンテナはこれを行いません。代わりに、void を返します。なぜこの矛盾があるのか​​ 知っている人はいますか?

0 投票する
11 に答える
6961 参照

c++ - pop_back() は本当に std::vector の *all* イテレータを無効にしますか?

pop_back()が呼び出されるitと無効になるため、このコードは機能しません。しかし、 のイテレータの無効化について話しているドキュメントは見つかりませんstd::vector::pop_back()

それについてのリンクはありますか?