首页 > 后端开发 > C++ > 如何简化 C 中的 std::vector 初始化?

如何简化 C 中的 std::vector 初始化?

Barbara Streisand
发布: 2024-12-25 13:01:09
原创
394 人浏览过

How Can I Simplify std::vector Initialization in C  ?

简化 std::vector 初始化

在 C 中使用数组时,初始化通常很简单:

int a[] = {10, 20, 30};
登录后复制

但是,使用push_back()初始化std::vector可能会更麻烦方法:

std::vector<int> ints;

ints.push_back(10);
ints.push_back(20);
ints.push_back(30);
登录后复制

C 11 解决方案(支持)

如果您的编译器支持 C 11,您可以使用初始值设定项列表:

std::vector<int> v = {1, 2, 3, 4};
登录后复制

这在 GCC 版本 4.4 和

替代选项(使用 Boost.Assign)

对于较旧的编译器,Boost.Assign 库提供了非宏解决方案:

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

或者,使用 Boost.Assign运算符:

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

请记住,与手动初始化相比,Boost.Assign 可能会产生性能开销。

以上是如何简化 C 中的 std::vector 初始化?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板