相关疑难解决方法(0)

std :: ignore with structured bindings?

序幕:

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)

是否可以使用新的结构化绑定语法执行类似的操作?它会如何工作?

c++ language-lawyer c++17

61
推荐指数
4
解决办法
8767
查看次数

我可以使用基于范围的for循环轻松迭代地图的值吗?

是否可以仅使用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)

c++ for-loop map c++11

24
推荐指数
4
解决办法
3万
查看次数

如何忽略元组的某些元素?

我有一个包含一些元素的元组,我想将元组的一些元素分配给变量,并忽略其中一些元素。

 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)

c++ tuples c++17

1
推荐指数
1
解决办法
526
查看次数

标签 统计

c++ ×3

c++17 ×2

c++11 ×1

for-loop ×1

language-lawyer ×1

map ×1

tuples ×1