如何使用指针对数组进行排序/复制?

时间:2016-10-06 17:45:51

标签: c++ arrays algorithm sorting copy

我正在尝试仅使用<algorithm>对数组进行排序和复制,但无法弄清楚如何完成。这是我一直努力做的代码,但没有成功。我错过了什么?

sorted_sc_array(const sorted_sc_array& A);          
template< sorted_sc_array& A, sorted_sc_array& T>   
auto Copy(sorted_sc_array& A, sorted_sc_array& T)   
    ->signed char*(T.begin())   
{  
  auto it1=std::begin(A);  
  auto it2=std::begin(T);

  while(it1 != std::end(A)){
    *it2++ = *it1++;
  }
  return it2;
}

1 个答案:

答案 0 :(得分:1)

对数组进行排序:

const unsigned int CAPACITY = 1024;
int array[CAPACITY];
//...
std::sort(&array[0], &array[CAPACITY]);

要复制数组:

int destination[CAPACITY];
//...
std::copy(&array[0], &array[CAPACITY], &destination[0]);

地址可以替换<algorithm>中的大多数函数中的指针或迭代器。

使用指针

int * p_begin = &array[0];
int * p_end   = &array[CAPACITY];
//...
std::sort(p_begin, p_end);
//...
int * p_dest_begin = &destination[0];
std::copy(p_begin, p_end, p_dest_begin);