在c++中传递值

Passing values in C++

本文关键字:c++      更新时间:2023-10-16

我有一个从文件中读取一些变量的函数:

void ReadFromFile(const string& inicod){
string buf;
ifstream infile(inicod);
infile >> N; getline(infile, buf);
infile >> t_end; getline(infile, buf);
infile >> L; getline(infile, buf);
...

我必须在main中访问这些变量N, t_end, L。我应该在哪里声明它们(像全局变量一样?)以及如何访问它们?

可以返回一个元组

auto ReadFromFile(const string& inicod){
  string buf;
  ifstream infile(inicod);
  infile >> N; getline(infile, buf);
  infile >> t_end; getline(infile, buf);
  infile >> L; getline(infile, buf);
  return std::make_tuple(N, t_end, L);
}

auto表示函数的返回类型取决于返回语句。因此,无论我传递std::make_tuple,该函数将自动返回正确的std::tuple<T1, T2, ..., Tn> (std::make_tuple的结果)。
std::tuple是一个简洁的模板,它允许您动态地将数据捆绑在一起,而无需声明自己的struct。如果返回的对象对于默认构造来说成本不高,那么还有一个解包元组的实用程序:

//N, t_end, L definition
std::tie(N, t_end, L) = ReadFromFile(inicod);

您可以像这样传递对变量的引用:

void ReadFromFile(const string& inicod,string &N,string &e_end,string &L){
....
}
相关文章:
  • 没有找到相关文章