文字列の並べ替えを試みています。私はいくつかのテストをしていましたが、私は期待していないことを見つけました。私はそれを説明することはできません。辞書テストで "paul"の前に "test"が来るのはなぜですか?
if ("test" < "paul")
{
cout << "test is less than paul" << endl;
}
「テスト」が「ポール」よりも小さいのはなぜですか? 'p'は 't'よりもASCII値が低くなります。アルファベットのpの前にも来ます。どちらの場合も、文字列の長さは同じです。
私はswap()を使ってアルファベット順に配列をソートしています。私はsort()を使うことができません。私はswapを使う必要があります。
更新: 上記の例ではポインタを使用しましたが、これは実際のコードです。
DynamicArray<string> sectionName; //declaration
swap(alreadySeen[i].sectionName[j],alreadySeen[i].sectionName[i]); //usage
これは常に有効に警告してコンパイルする詳細
文字列ではなくポインタを比較しています – KIIV
これは辞書編集上の比較ではないためです。 – jtbandes
"test"は "paul" ...の前に来ます! –