序幕:
std::tuple<int, int, int> f();
std::tuple<int, int, float, int> g();
Run Code Online (Sandbox Code Playgroud)
C++ 1z将引入结构化绑定的语法,这样可以编写代替
int a, b, c;
std::tie(a, b, c) = f();
Run Code Online (Sandbox Code Playgroud)
就像是
auto [a, b, c] = f();
Run Code Online (Sandbox Code Playgroud)
但是,std::tie也允许指定std::ignore忽略某些组件,例如:
std::tie(a, b, std::ignore, c) = g();
Run Code Online (Sandbox Code Playgroud)
是否可以使用新的结构化绑定语法执行类似的操作?它会如何工作?
是否可以仅使用foreach迭代std :: map中的所有值?
这是我目前的代码:
std::map<float, MyClass*> foo ;
for (map<float, MyClass*>::iterator i = foo.begin() ; i != foo.end() ; i ++ ) {
MyClass *j = i->second ;
j->bar() ;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法可以做到这一点?
for (MyClass* i : /*magic here?*/) {
i->bar() ;
}
Run Code Online (Sandbox Code Playgroud) 我有一个包含一些元素的元组,我想将元组的一些元素分配给变量,并忽略其中一些元素。
auto tuple1 = std::make_tuple(1,2,3,4);
// variable a should be placeholder 1 in tuple and variable b should be place holder 3;
int a,b ;
Run Code Online (Sandbox Code Playgroud)