私は、私が受けたいと思っている大学のコースをまとめたC++のプログラムを持っています。コンソールからの入力(コースコード、説明など)を入力し、各コースをメジャーで編成してから、すべてをきれいにフォーマットされた読みやすいHTMLファイルに出力します。後で、私は多くの研究でリストを間引くことを計画しています。std :: list :: sortの使い方が私のプログラムをハングします
各コースをオブジェクトとして実装します。これは、情報の入力が完了するとリストに追加されます。すべての情報が完成したら、list::sort
は、各コースをメジャーとコードでソートする必要があります(例:CSE 380はCSE 110の後に来て、ECO 108の前に来る)。その後の書式設定は簡単です。
ソートするには、技術的に有効ではないにもかかわらず、奇妙なエラーが発生するので、単純な関数を実装する必要があります。私はCourseクラスの '<'演算子がないためです。私の機能はこのように見えます。
getCode()
は(「AMS 401」のような)三文字/数字形式でコースコードを保持している小さな文字列を返す
bool courseCompare(Course course1, Course course2) { return course1.getCode() < course2.getCode(); }
。これは明らかにアルファベット順を容易にするためのものです。
私はsoメソッドを呼び出します。 all_the_courses
all_the_courses.sort(courseCompare);
リストです。
しかし、私がstd :: listを使用するたびに、プログラムはただ停止します。クラッシュしない、出力しない、何かを入力してEnterを押したときに応答しない。何か案は?
待機、C++をスクリプトに使用していますか?別のプログラミング言語の使用を検討してください。 – orlp
私はあなたのコンパレータが_厳格な弱い注文を実装していないと思います。プロセスに侵入してデバッガで調べるとどうなりますか? –
@Tomalak: 'course1.getCode()
Xeo