在 C++ 中传递值
Passing values in C++
我有一个函数可以从文件中读取一些变量:
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。我应该在哪里声明它们(比如全局变量?)以及如何访问它们?
您可以像这样传递对变量的引用:
void ReadFromFile(const string& inicod,string &N,string &e_end,string &L){
....
}
你可以return一个元组。
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
表示函数的return类型依赖于return语句。所以无论我传递 std::make_tuple
,函数都会自动 return 正确的 std::tuple<T1, T2, ..., Tn>
(std::make_tuple
的结果)。
std::tuple
是一个简洁的模板,可让您即时将数据捆绑在一起,而无需声明您自己的 struct
。如果您的 returned 对象对于默认构造来说并不昂贵,那么还有一个实用程序可以解包元组:
//N, t_end, L definition
std::tie(N, t_end, L) = ReadFromFile(inicod);
我有一个函数可以从文件中读取一些变量:
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。我应该在哪里声明它们(比如全局变量?)以及如何访问它们?
您可以像这样传递对变量的引用:
void ReadFromFile(const string& inicod,string &N,string &e_end,string &L){
....
}
你可以return一个元组。
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
表示函数的return类型依赖于return语句。所以无论我传递 std::make_tuple
,函数都会自动 return 正确的 std::tuple<T1, T2, ..., Tn>
(std::make_tuple
的结果)。
std::tuple
是一个简洁的模板,可让您即时将数据捆绑在一起,而无需声明您自己的 struct
。如果您的 returned 对象对于默认构造来说并不昂贵,那么还有一个实用程序可以解包元组:
//N, t_end, L definition
std::tie(N, t_end, L) = ReadFromFile(inicod);