gpt4 book ai didi

c++ - 从 int[] 转换为 list : Any better way

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:19:09 26 4
gpt4 key购买 nike

我有一个整数数组,如下所示:

int ia[] = {1, 2, 3, 4, 5, 6};

我想把它转换成 list<int>和一个 vector<int> .我想到的明显方法是遍历数组,并将元素添加到 list<int>vector<int> :

for (auto val: ia) {
ilist.push_back(val);
ivec.push_vack(val);
}

我只是想知道,是否有任何其他方式,可能有可用的库函数?

最佳答案

您可以使用双迭代器构造函数:

std::list<int> ilist(std::begin(ia), std::end(ia));
std::vector<int> ivec(std::begin(ia), std::end(ia));

如果您没有对 std::beginstd::end 的 C++11 支持,您可以使用

std::list<int> ilist(ia, ia + 6);

在实际代码中,您的目标是提供一个数组长度函数,而不是显式使用 6

更好的是,您可以创建自己的 beginend 函数模板,例如

template< class T, std::size_t N >
T* my_end( const T (&a)[N] )
{
return &a[N];
}

编辑这是一个数组长度函数模板:

template< class T, size_t N >
std::size_t size( const T (&)[N] )
{
return N;
}

关于c++ - 从 int[] 转换为 list<int> : Any better way,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17533885/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com