如何在C++中优雅返回特定vector元素?无需新建变量返回大小为2的vector
直接返回大小为2的vector的方法
你之前尝试的<1,2>是模板参数语法,不能用来初始化vector对象。正确的做法是使用列表初始化(C++11及以后版本支持),直接用花括号包裹元素返回即可,不需要额外创建vector变量:
#include <vector> std::vector<int> foo() { return {1, 2}; }
原理说明
{1,2}会被编译器识别为std::initializer_list<int>类型,而std::vector自带可接收该参数的构造函数,编译器会自动完成vector对象的构造并返回,省去了手动创建变量的步骤。
如果你的项目仍在使用C++03或更早的标准,就只能显式构造vector后返回,比如:
std::vector<int> foo() { std::vector<int> res; res.push_back(1); res.push_back(2); return res; } // 或更简洁的显式构造写法 std::vector<int> foo() { return std::vector<int>(2); }
内容的提问来源于stack exchange,提问作者shaan
相关产品推荐
相关产品推荐

