問題タブ [stdlist]

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 投票する
5 に答える
6352 参照

c++ - 真ん中のstd::listにアクセスする

ダミーの質問があります。私はいつも、C ++コンテナには、最初、最後、および途中で要素を挿入するための一定の時間があります。これは、要素を?std::listの真ん中に直接挿入する正しい方法です。std::list多分これですか?

「真ん中に挿入する」と言うとき、リストの最初から目的のポイントに移動するための線形時間を節約することを本当に意味しますか(間にあるすべてのリンクされた要素を1つずつトラバースする)?

0 投票する
2 に答える
316 参照

c++ - std :: list :: sortを使用すると、プログラムがハングします

受講したい大学のコースをまとめたC++のプログラムがあります。これは、コンソールから入力(コースコード、説明など)を取得し、各コースをメジャー別に整理してから、すべてを適切にフォーマットされた読みやすいHTMLファイルに出力することで実現します。後で、私は多くの研究でリストを間引くことを計画しています。

各コースをオブジェクトとして実装します。これは、情報の入力が完了するとリストに追加されます。すべての情報が完成したら、list::sort各コースをメジャーとコードで並べ替える必要があります(たとえば、CSE380はCSE110の後にあり、両方ともECO 108の前にあります)。後のフォーマットは簡単です。

ソートするには、単純な関数を実装する必要があります。これは、技術的には有効ですが、Courseクラスに「<」演算子がないために奇妙なエラーが発生するためです。私の関数は次のようになります。

ここで、getCode()は3文字/桁の形式でコースコードを保持する小さな文字列を返します(「AMS401」など)。これは、明らかにアルファベット順を容易にするためのものです。

私はそのようにsortメソッドを呼び出します。

all_the_courses.sort(courseCompare);

リストはどこall_the_coursesにありますか。

ただし、std :: listを使用すると、プログラムが停止します。クラッシュせず、出力もありません。何かを入力してEnterキーを押しても、応答しません。何か案は?

0 投票する
2 に答える
179 参照

c++ - en要素(double forループ)を消去した後、std :: listを正しく指す方法は?

から要素を消去しstd::listてからこのリストをポイントしたいのですが、このようにすると

例外を取得して処理しませんでした:iterator is unincrementable

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

c++ - テンプレート化された構造体の std::list を作成する (C++)

次のように定義された構造体があります。

次のようなさまざまなタイプを使用して、さまざまなデータ構造体の std::list を作成したいと思います。

これらの両方の構造体を受け入れる std::list を宣言できるかどうかはわかりません。これらの std::list を作成することは可能ですか? 回避策として、構造体を一般的なリンクリストにすることができると思いますが、可能であれば標準ライブラリを使用したいと思います。

0 投票する
2 に答える
1891 参照

c++ - std:list の繰り返し

これは私のコードです:

私がやろうとしているのは、リストに含まれるすべての wstring にアクセスし、その size() メンバー関数を呼び出すことです。ただし、 itr が指すのは反復された wstring 要素ではないようで、エラーが発生します (エラー C2039: 'size' : is not a member of 'std::_List_iterator<_Mylist>')。

あなたが何kbなのか疑問に思っている場合、それは構造体へのポインタであり、std::list<std::wstring> titles;そのメンバーの1つです。

これを修正する方法についてのアイデアはありますか?

0 投票する
2 に答える
1592 参照

c++ - デバッグアサーションに失敗しました:std::vectorの範囲外の添え字

範囲外のインデックスでアクセスしているように見えるこの問題を修正しようとしていますが、VSはエラーが発生した場所で停止できず、原因について混乱しています。

エラー:

デバッグアサーションに失敗しました!プログラム:....ファイル:c:\ program files \ microsoft visual studio 10.0 \ vc \ include \ vector行:1440式:文字列の添え字が範囲外です

プログラムの機能:

2つのスレッドがあります:

スレッド1:

最初のスレッドは、(とりわけ)を使用して現在のウィンドウの変更を探しますGetForegroundWindow()。チェックはループではなく、WH_MOUSE_LLイベントがトリガーされたときに行われます。データは固定サイズの構造体に分割されるため、tcpを介してサーバーに送信できます。最初のスレッドは、データ(ウィンドウタイトル)をstd::list現在の構造体のに記録します。

スレッド2:

2番目のスレッドは、まだ送信されていない構造体を探すために呼び出さcharれ、tcpを介して送信できるように、コンテンツをバッファーに入れます。エラーがどこにあるか正確にはわかりませんが、エラーのタイプから見ると、文字列またはリストのいずれかで発生しました。これは、リスト/文字列を使用するアプリケーション全体からの唯一のコードです(残りは従来の配列です)。また、コードコメントで説明されているようにifブロックにコメントを付けると、エラーが発生しなくなります。

スレッド同期の試み: 作成された最初のdata_blockへのポインター(db_main)現在のdata_blockへのポインター(db_cur)

詳細:

サブストリングエラーは非常にまれであるため、エラーはそこにはないと私は信じています。Mouse_Down + Wnd + Tabを押してウィンドウをスクロールし、しばらく押し続けた場合にのみ、100%の確率で再現できました(他の場合にも発生しました)。コード全体が少し大きく、混乱が避けられないため、コード全体を投稿することは避けています。エラーがここにない場合は、投稿を編集してコードを追加します。

前もって感謝します

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

c++ - コンストラクターでプライベートリストクラスのメンバーを初期化する必要がありますか?

私はヘッダーファイルを持っています:

そして私の.cppファイルで:

meetings()コンストラクターの初期化リストに追加する必要がありますか?

コンストラクターでオブジェクトを初期化するルールについてはよくわかりません。コンストラクターで明示的に初期化されていなくても、すべてのプライベートメンバーオブジェクトが初期化されますか?また、リスト内のオブジェクトを削除するには、リストのデストラクタを作成する必要がありますか?

ありがとう。

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

c++ - COM 経由でリストを送信する方法

COM 経由でオブジェクトのリストを送信できますか? 私にはクラスがあり、このクラスのリストもあります。そして、これを COM 関数で送信する必要があります。それをしてもいいですか?はいの場合、どのように?シリアル化マーシャリングは必要ですか?

0 投票する
1 に答える
3384 参照

c++ - 2 つの std::list リストを比較して異なるオブジェクトを取得する

std::list2 つのリストの差分を取得する準備ができている関数はありますか?

たとえば、私はlist1: obj1, obj2, obj3, obj4とを持っていlist2: obj2, obj3, obj4, obj5ます。

関数の結果は、、、となるはずlist1_unique: obj1です。list1_and_list2: obj2, obj3, obj4list2_unique: obj5

(私自身の実装を書くのは難しくありませんが、標準関数を好むでしょう)

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

c++ - エントリの削除時にポインタの std::list が無効になる

ゲーム内で順番が必要な時間オブジェクトを参照するポインターのリストがあります。この例ではTimeObject*、リストに 2 つ含まれています。このコードは、アイテムがリストから削除されるまで機能します。削除されると、他のアイテムが指すアドレスは無効になります。TimeObjectこれが発生してもどちらも削除されません。ポインターのみがリストから削除されます。これは何が原因ですか?

TimeUnlink()で呼び出されTimeObject::Tick()ます。これは静的ではありませんが、リストは静的です。

Linux で GCC 4.6.2 を使用しています。プログラムはスレッド化されていません。

エラー出力: