是否有更简单的方法可以使用c ++将数组转换为集合而不是循环遍历其元素?
最好使用标准模板库
答案 0 :(得分:20)
对于所有标准库容器类型,请使用constructor:
std::set<T> set(begin(array), end(array));
答案 1 :(得分:5)
int a[] = {1,2,3,4};
std::set<int> s{1,2,3,4};
std::set<int> s1{std::begin(a), std::end(a)};
请参阅:Here
答案 2 :(得分:2)
#include <set>
#include <utility>
#include <iostream>
using namespace std;
auto main()
-> int
{
static int const a[] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 4};
set<int> const numbers( begin( a ), end( a ) );
for( auto const v : numbers ) { cout << v; }
cout << endl;
}
答案 3 :(得分:0)
int arr{} = {1,55,4,2,35,1,5}; //declare the array
int arrSize = sizeof(arr)/arr[0]; //get size of the array
set<int> s(arr, arr+arrSize); //move the array to the set ***
答案 4 :(得分:0)
如果你想在插入它们之前(或者在插入它们时)对数组中的值执行某些操作,你可以使用std :: transform。