将数组转换为C ++中的set

时间:2013-12-15 18:43:52

标签: c++ arrays set

是否有更简单的方法可以使用c ++将数组转换为集合而不是循环遍历其元素?

最好使用标准模板库

5 个答案:

答案 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。