在C++中,可以使用std::set函數對數組重新賦值。set函數是通過將值插入到set容器中,自動去重并按照升序排列的方式對數組重新賦值。
下面是一個示例代碼:
#include <iostream>
#include <set>
#include <iterator>
int main() {
int arr[] = {3, 5, 2, 5, 4, 1, 4};
int n = sizeof(arr) / sizeof(arr[0]);
// 使用set函數對數組重新賦值
std::set<int> s(arr, arr + n);
// 清空原數組
std::fill(arr, arr + n, 0);
// 將set中的值重新賦值給數組
std::copy(s.begin(), s.end(), arr);
// 打印重新賦值后的數組
std::cout << "重新賦值后的數組: ";
for (int i = 0; i < n; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
return 0;
}
運行結果:
重新賦值后的數組: 1 2 3 4 5
在上面的示例中,首先定義一個int類型的數組arr,并初始化。然后使用std::set函數將數組中的元素插入到set容器中,去重并排序。接著使用std::fill函數將原數組中的元素全部置為0,最后使用std::copy函數將set容器中的值重新賦值給數組。最后打印重新賦值后的數組。