首页 >后端开发 >C++ >如何在 C 中使用硬编码元素优雅地初始化 std::vector ?

如何在 C 中使用硬编码元素优雅地初始化 std::vector ?

Susan Sarandon
Susan Sarandon原创
2024-12-22 20:29:59151浏览

How Can I Elegantly Initialize a std::vector with Hardcoded Elements in C  ?

使用硬编码元素对 std::vector 进行优雅的初始化

虽然在 C 中初始化数组很简单,例如 int a[] = {10, 20, 30},以类似的方式初始化 std::vector 可能看起来麻烦。以下是两种实现相同结果的优雅方法:

C 11 初始化器列表

在 C 11 及更高版本中,您可以使用初始化器列表来初始化 std::直接向量:

std::vector<int> v = {1, 2, 3, 4};

GCC 从 4.4 版本开始支持此语法。不过,VC 2010 尚不支持此功能。

Boost.Assign 库

另外,Boost.Assign 库提供了一种便捷的方法来初始化std::vector:

#include <boost/assign/list_of.hpp>
...
std::vector<int> v = boost::assign::list_of(1)(2)(3)(4);

或:

#include <boost/assign/std/vector.hpp>
using namespace boost::assign;
...
std::vector<int> v;
v += 1, 2, 3, 4;

请注意,后一种语法由于内部使用 std::deque 而涉及少量开销。因此,对于性能关键的代码,请考虑直接使用 std::vector 初始值设定项列表,如 Yacoby 在原始问题中所建议的那样。

以上是如何在 C 中使用硬编码元素优雅地初始化 std::vector ?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn