私はboost/range/algorithm.hppからboost :: sort()を使用していますが、実際は遅いです。符号なしの整数型で作業しているので、「boost/sort /スピードを向上させることができます " 質問は、std :: sort(v.begin()、v.end())が〜54秒で実行され、boost:sort(v)〜54秒(同じ時刻)boost_libraryからinteger_sortを使用するにはどうすればよいですか?
しかし、私は基数ソートのようなものを書いて〜28秒かかるが、私はinteger_sortがより最適化できると思うが、私はどのようにinteger_sortを使うのか分からない。
#include <vector>
#include <boost/range/algorithm.hpp>
#include <boost/sort/spreadsort/integer_sort.hpp> // I WANT USE THIS
#include "myLib.hpp"
using namespace std;
int main(void)
{
vector <unsigned> v(20);
for (unsigned i = 0; i < v.size(); i++)
v[i] = rand() % 1000;
imprime(v); // THIS PRINTS THE VECTOR
boost::sort(v); // THIS SORT THE VECTOR
imprime(v);
integer_sort(v.begin(), v.end()); // THIS DOES'T WORK
return 0;
}
私はinteger_sort(v.begin()、v.end())を試してみてください。これは正しくない - 私はstd::sort(v)
<をしようとすると、私は似た何かを得る - 私はこれが(v.begin()、v.end())RandomAccessIter first
<とは何かを持っていることを知っている
sort.cpp: In function ‘int main()’:
sort.cpp:23:34: error: ‘integer_sort’ was not declared in this scope
integer_sort(v.begin(), v.end());
^
sort.cpp:23:34: note: suggested alternatives:
In file included from sort.cpp:5:0:
/usr/include/boost/sort/spreadsort/integer_sort.hpp:173:15: note: ‘boost::sort::spreadsort::integer_sort’
inline void integer_sort(RandomAccessIter first, RandomAccessIter last,
^~~~~~~~~~~~
In file included from /usr/include/boost/sort/spreadsort/integer_sort.hpp:26:0,
from sort.cpp:5:
/usr/include/boost/sort/spreadsort/detail/integer_sort.hpp:482:5: note: ‘boost::sort::spreadsort::detail::integer_sort’
integer_sort(RandomAccessIter first, RandomAccessIter last, Div_type,
^~~~~~~~~~~~
を取得します。しかし、私はエラーメッセージを理解していません。 std :: sortのようにcandidate expects 3 arguments, 1 provided
と言ってはいけません。
どのようにinteger_sort()を使用しますか?
Boost Docは言う:
integer_sort、float_sort、およびstring_sortの各3つの主なバージョンがあります:
integer_sort(array.begin(), array.end());
float_sort(array.begin(), array.end());
string_sort(array.begin(), array.end());
:だけのstd ::並べ替えのように、最初のイテレータと最後のイテレータを取るベースバージョンを、
提案されている代替手段の中で 'boost :: sort :: integer_sort'行が何を意味するのか推測してみてください。そしてなぜあなたは以前に 'boost :: sort'を書きましたか? –
[Related boost bug report](https://svn.boost.org/trac/boost/ticket/11202)(これはまったく同じ問題ではありませんが、この種のテストでは実行する可能性があります)。 – Mankarse