STLソートアルゴリズム

私は昇順に配列をソートしようとしていますし、私のコードで何が間違っているのか分かりません(私はベクトルに全く触れていません)。最初に入力配列(データ)をSTLベクトルにコピーし、次にSTLのソートアルゴリズムをベクトルに適用し、最後にベクトルを配列にコピーして戻す必要があります。

void STLSort(int data[],int size)
{
vector a1;
a1.reserve(size);
for(int i=0;i

ありがとう。

ベストアンサー

範囲を直接ソートすることができます:

void sort_me(int * arr, unsigned int size)
{
  std::sort(arr, arr + size);
}

int main()
{
  int a[] = { 3, 11, 7 };
  sort_me(a, sizeof(a)/sizeof(int));

 //or even just in-place:
  int b[] = { 12, -1, 88, 0 };
  std::sort(b, b + sizeof(b)/sizeof(int));
}

さらにヒップ:テンプレート:

template 
void sort_me_v2(T (&arr)[N])
{
  std::sort(arr, arr + N);
}

int main()
{
  int c[] = { -1, 2, -3, 4 };
  sort_me_v2(c);
}

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です