問題タブ [stdvector]
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.
c++ - ベクトルと検索を使用する場合の C++ の未解決の外部変数
このコードを完全に別のプロジェクトで試してみましたが、正常に動作します (唯一の違いは、動作していないプロジェクトが DLL としてエクスポートされていることです)。コードは次のとおりです。
RTATMATHLIB.CPP
RTATMATHLIB.H
エラー
以上です。このプロジェクトではなく、他のプロジェクトで機能する理由がわかりません...
c++ - 互換性のないベクトルイテレータ
現在、C ++のグラフライブラリに取り組んでいますが、実行時にデバッグモードでアサーションエラーが発生する時点でスタックします。私はまた、ここでSOに関するいくつかの他の質問を調べましたが、質問と回答のどれも私を解決策に導きません。いくつかのフォーラムを読んだ後、ベクターの内容が変更されるとすぐにイテレーターが無効になるため、このエラーが発生するという印象を受けました。(たとえば、を使用する場合erase()
)しかし、私のコードでわかるように、ベクトルを変更するのではなく、反復するだけです。
エラーは、私が。でマークした行にあり//ASSERTION
ます。奇妙なことに、 )neighbor_it
の最初のオブジェクトではなく、を指しているということです。コードをデバッグすると、neighbors-vectorに少なくとも1つのアイテムが含まれていることがはっきりとわかります。このベクトルの最初のオブジェクトを指すべきではありませんか?(*vertex_it)->neighbors(
0xfeeefeee
neighbor_it
詳細情報:m_vertices
はグラフ内のすべての頂点vertex::neighbors()
のベクトルであり、エッジのベクトルを返します(隣接/宛先頂点へのポインターがあります)。この方法では、特定の頂点を指すすべてのエッジを削除します。対応するエッジが見つかって削除された場合はtrueを返し、を指すエッジがない場合はfalseを返しますp_vertex
。
編集:(解決策)
さて、これが正しく動作する私の新しいコードです。remove_edge()
エッジを削除したベクトル内の次のオブジェクトへのイテレータを返すようになりました。さらに、対応するベクトルへの参照neighbors()
を返すようになりました。
回答ありがとうございます!:)
stl - std :: vector :: data()のステータスはどうなっていますか?
std :: stringとの類似性から使用していることに気づきましたstd::vector::data()
が、同僚がそれは標準ではないと指摘しました。
どうやらGccはそれを実装していますが、そのインクルードファイルを見ると、私はこのコメントを見つけました:
私の質問は次のとおりです。
- このメソッドは他のコンパイラによって広く実装されていますか?
- C ++ 0xに含まれていますか?
(私はまた、何DR 464
であるか、そして_GLIBCXX_RESOLVE_LIB_DEFECTS
そのことについても疑問に思いますが、それらについて別の質問をしたほうがよいでしょう)。
c++ - c ++ std :: vector std::sort無限ループ
オブジェクトのベクトルを並べ替えようとすると、無限ループが発生するという問題が発生しました。sort関数に渡したカスタム比較関数を使用しています。
2つのオブジェクトがtrueではなく等しい場合にfalseを返すことで問題を修正できましたが、解決策を完全には理解していません。これは、cplusplus.comで概説されているように、私の比較関数がこのルールに違反していたためだと思います。
範囲に含まれる値と同じタイプの2つの値を取り、最初の引数が定義された特定の厳密な弱順序で2番目の引数の前にある場合はtrueを返し、それ以外の場合はfalseを返す比較関数オブジェクト。
誰かがより詳細な説明を提供できますか?
c++ - ポインターの std::vector::push_back での EXC_BAD_ACCESS エラーに関する質問
std::vectorは確かに素晴らしいですね。
ただし、要素を追加するためEXC_BAD_ACCESS
に使用しています。push_back
(私はかつて同様の問題を抱えていましたが、SOで調べて解決しました!悲しいことに、これは別の問題のようです。)
(Beat
いくつかのデータを運ぶ単純な構造体のようなクラスです。)
(beat_display_group
いくつかの数字を処理して、各グループを画面上の適切な場所に配置します。)
そして、ここに問題があります:
時々gdb
私を連れて行きますstl_vector.h
:
その他の時間new_allocator.h
:
c++ - C ++:CSVをcontianerに保存する
カンマ区切りの値を含むがstd::string
あります。これらの値を配列、ベクトル、その他のコンテナなどの適切なコンテナに保存する必要があります。これを実行できる組み込み関数はありますか?または、このためのカスタムコードを作成する必要がありますか?
c++ - C ++で要素ごとに等しい2つのベクトルを比較するにはどうすればよいですか?
2つのベクトルを比較する方法はありますか?
注:現在、これらのベクトルはソートされておらず、整数値が含まれています。
c++ - C ++ std :: sort on vector
更新されたソリューション:
私の特定の問題では、sort呼び出しはconstとしてマークされたRender関数内にありました。const(私の好みではない)を削除するか、ソートを別の関数(この場合は私のUpdateの下部)に置くことで、問題は解決されます。いくつかの回答者が示唆したように、それは私が探していた場所ではなく、constの問題でした!
元の問題
このように宣言されたオブジェクトへのポインタのstd::vectorリストがあります。
ゲッターを介してメンバーデータで並べ替えようとしています...並べ替え述語もあります。ソート述語の後にstd::sort呼び出しが続きます。
ソートコール:
読み取り専用の場所の割り当てなどについて不平を言っていますが、12個ほどのエラーが発生します。
それは私がやっているばかげたことだと確信しています...誰かが光を当てるのを手伝ってくれるでしょうか?私は自分のC++に錆びていて、それに戻ってきました!任意の提案をいただければ幸いです。
アップデート
constを完全に削除するか、constが100%であることを確認するという、iammilindの提案を試しても、同じエラーが発生します(つまり、SortByDistance述語の最後にconstを追加し、からconstを削除しようとしました。状況全体。
コメント投稿者の1人が、私が愚かで危険なことをしているという提案によって、何かに興味を持っているのではないかと思っています。オブジェクトへの生のポインターをSTLコンテナーに格納することです。しかし、これを別の方法で行ったことはありません...ヒープに動的に割り当てられていないコンテナにオブジェクトを格納する理由は何ですか?生のポインタを扱っていない場合は、ソートの問題の複雑さが解消されると思います。
私は現在、次のようにオブジェクトを作成しています。
もちろん、プログラムが終了したらそのメモリを解放しますが、これは一般的に悪い考えのように聞こえますか?
(私が尋ねた質問に)より関連するメモで、ここに不平を言っているstl_algo.hのコードがあります:
さまざまなconst/no-constソリューションを試しても、同じエラーが発生します。並べ替えを実行している行をコメントアウトすると、次のようになります。std :: sort(myObjects.begin()、myObjects.end()、SortByDistance); もちろん、エラーはなくなります。
c++ - C++ では、std::vector かどうかを確認します特定の値を含む
私のベクトルに特定の要素が含まれているかどうかなどを知らせる組み込み関数はありますか
c++ - 初心者の質問: オブジェクトがベクトルにあるときに、オブジェクトのメンバーにアクセスできないのはなぜですか?
これはおそらく基本的な質問です。
構造体を使用して自分で定義したデータ型「プレーヤー」のベクトルがあります。
次に、これらのプレーヤーのデータ型のベクトルをパラメーターとして受け取る関数があり、構造体のメンバーにアクセスしたい
はat(i)
ベクトルの関数であるため機能します。ただし、アクセスできませんplayer_name
。これはなぜですか、どうすれば解決できますか? これが基本的で退屈な場合はお詫び申し上げます。