【C++】For循环同时初始化两个及以上个变量

0.引言

\qquad C++的for循环在初始化时可以通过类型定义符直接初始化两个相同类型的变量,但是对于不同类型的变量是不可以直接初始化的,若想达到类似python的zip()函数的多类型多变量迭代的效果,则需要使用C++特有的包装将其多个变量包装为单个迭代器进行迭代。

1.初始化同类型变量

可在类型定义符时直接初始化

for(int i=0,j=0;i<10 && j<10; ++i,++j){
	;// TODO
}

2.初始化两个不同类型的变量

使用结构体初始化不同类型的两个变量

for(struct {int a;double b}s = {10,0.1}; a>0 && s<100; --a,s *=2){
	;//TODO
}

使用std::pair初始化两个不同类型的变量(较结构体方法不能直接初始化两个以上类型的变量)

for(std::pair<int,double>s_pair(10,0.1);s_pair.first>0 && s_pair.sencond<100.0; --s_pair.first, s_pair.second *=2){
	;//TODO
}

这时可以使用std::pair的扩展std::tuple进行

for(std::tuple<int,double,int>s_tuple(10,0.1,-10);std::get<0>(s_tuple)>0 && std::get<1>(s_tuple)<100.0 && std::get<2>(s_tuple)<10; ){
	;//TODO
}
  • 9
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

非线性光学元件

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值