1

ランダムな単語で満たされた 3 行のテキスト ファイルを作成しました。したい :

  • ファイル内の各行を個別に読み取ります。
  • 各行の単語をアルファベット順に並べ替えます
  • ソートされた行をコンソールに出力します。

これは私がこれまでに思いついたものです[実行可能]: https://gist.github.com/anonymous/6211515

行を読み取ってベクター内に配置し、そのベクターをソートしてから、結果のベクターをコンソールに出力します。しかし、私は行を並べ替えているだけで、実際の単語を並べ替えているわけではありません。行全体を文字列として入力しているため、問題が発生しています。私は C++ プログラミングが初めてで、行ではなく実際の単語をソートできるようにするにはどうすればよいかわかりません。

これは宿題ではなく、次の試験に備えて解決するよう提案された問題です。この試験はペンと紙で行われるため、ソリューションができるだけシンプルであることが最も重要です。

4

3 に答える 3

2

少なくとも、あなたが何を望んでいるかを正しく理解していれば、次のようにします。

  1. で行を文字列に読み込みますstd::getline
  2. std::stringstream文字列からa を初期化する
  3. stringstream からベクトルに単語を読み取ります
  4. ベクトルを並べ替える
  5. ソートされた単語を出力に書き込みます。
  6. 完了するまで繰り返します。
于 2013-08-12T19:19:55.220 に答える
1

あなたが探しているのはlexicographical sortingアルゴリズムです。つまり、単語を辞書のようにアルファベット順に並べ替えます。

標準の c++ はそのアルゴリズムをサポートしています。ここを見てください:http://www.cplusplus.com/reference/algorithm/lexicographical_compare/

実装にアクセスするには#include <algorithm>

于 2013-08-12T19:22:05.890 に答える