从向量函数返回向量

Max*_*Max 9 c++ c++11 angular

是否可以将std :: vector作为auto返回?例如:

auto retVec() {
  std::vector<int> vec_l;

  l.push_back(1);
  l.push_back(2);

  return vec_l;
}
...
auto ret_vec = retVec();
for (auto& it : ret_vec) {
}
Run Code Online (Sandbox Code Playgroud)

当我写这样的东西时,我收到一个错误:

  1. 错误:使用auto retVec()前扣除auto---> auto ret_vec = retVec(**)**;
  2. 错误:无法auto&&ret_vec---> 推断for (auto it : **ret_vec**) {

我怎么写这个呢?

更新:对不起.我在课堂上使用这个retVec作为方法,它不起作用.当我在课堂上使用它作为功能时 - 一切正常.我在制定问题时犯了错误.

Ron*_*Ron 19

您正在编译C++ 11标准.您需要至少编译C++ 14标准,因为推导的返回类型仅从C++ 14开始可用.参考说明:

在不使用尾随返回类型语法的函数声明中,关键字auto指示将return使用模板参数推导的规则从其语句的操作数推导出返回类型.