C++ 中能否在同一行完成变量声明并直接返回对应值?
语法合法性判定
你提供的单行写法return vector<int> a;不符合C++语法规范,无法正常编译。
原因是return关键字后仅允许跟随表达式,不允许直接写变量声明语句,你试图在return逻辑中同时定义变量a的写法属于明确的语法错误。
等效合法单行实现方案
以下几种写法均和你的原始逻辑完全等效,返回空的vector<int>对象:
- C++98及以上版本通用写法:直接返回匿名临时对象
return vector<int>();
- C++11及以上版本推荐的统一初始化写法:
return vector<int>{};
- C++11及以上版本最简写法:当函数返回值类型明确为
vector<int>时,编译器可以自动推导初始化目标类型,可直接写:
return {};
内容的提问来源于stack exchange,提问作者zeltath
相关产品推荐
相关产品推荐

