18

cplusplus.com の参照から、要素をソートしているようですstd::set

文字列をソートする必要がありますが、すべてのプラットフォームとコンパイラでうまく機能するかどうかはわかりません。主にGCC、MinGW、VC。

4

4 に答える 4

31

その定義によりstd::set、ソートされたコンテナーです。標準の一部です。ソートすると、単なる任意のコレクションではなく、セットを維持するのに役立ちます。

ソース: http://www.sgi.com/tech/stl/set.html

于 2012-08-04T13:51:50.227 に答える
6

はい、std::set要素の反復処理がソートされた順序で行われるように、その要素を保存します (そして、への呼び出しは、一意のアイテムも保存std::adjacent_findすることを示すことです)。std::set

#include <algorithm>
#include <iterator>
#include <ios>
#include <iostream>
#include <set>
#include <string>

int main()
{
    auto const ss = std::set<std::string> { "foo", "bar", "test" };
    std::cout << std::boolalpha << std::is_sorted(begin(ss), end(ss)) << "\n";
    std::cout << std::boolalpha << (std::adjacent_find(begin(ss), end(ss)) == end(ss)) << "\n";
    std::copy(begin(ss), end(ss), std::ostream_iterator<std::string>(std::cout, "\n"));
}

実際の例

于 2012-08-04T14:00:08.163 に答える