我正在尝试仅使用<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;
}
答案 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);