免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: gtkmm
打印 上一主题 下一主题

[C++] 自己写的一个foreach,欢迎拍砖 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-09-02 22:09 |只看该作者
这个宏支持foreach( int& x,array)  foreach( int x,array)  foreach( x,array)这三种形式,写成普通语句的确难了些

论坛徽章:
0
12 [报告]
发表于 2008-09-03 01:24 |只看该作者

回复 #11 wzcsoft 的帖子

普通语句无法实现支持foreach( int& x,array)  foreach( int x,array)  foreach( x,array)这三种形式的

评分

参与人数 1可用积分 -10 收起 理由
cugb_cat -10 恶意灌水

查看全部评分

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
13 [报告]
发表于 2008-09-04 14:37 |只看该作者
原帖由 qliu00 于 2008-9-3 01:24 发表
普通语句无法实现支持foreach( int& x,array)  foreach( int x,array)  foreach( x,array)这三种形式的

论坛徽章:
0
14 [报告]
发表于 2008-09-04 14:39 |只看该作者
原帖由 flw 于 2008-9-4 14:37 发表



呵呵,斑竹咋了

论坛徽章:
0
15 [报告]
发表于 2008-09-04 19:58 |只看该作者
原帖由 bood 于 2008-9-4 14:39 发表


呵呵,斑竹咋了

昨夜饮酒过度,呕吐,呕吐。。

论坛徽章:
1
天蝎座
日期:2013-08-25 10:27:22
16 [报告]
发表于 2008-09-05 11:25 |只看该作者
原帖由 bood 于 2008-9-4 14:39 发表


呵呵,斑竹咋了

你不了解情况,flw又找到那楼的漏洞了。。

论坛徽章:
0
17 [报告]
发表于 2008-09-05 17:30 |只看该作者
原帖由 wzcsoft 于 2008-9-2 14:10 发表
首先谢谢楼主的分享。看得出楼主为了避免复合语句采用了不少特殊方法,废了翻脑筋。不过不得不说的是,这样子降低了效率。

6楼的牛说宏定义能包含多个语句,我很菜,没见过,呵呵。那位高手能给我讲一下怎么 ...


额,我也不是很懂,只是以前看到过
do { \
/* do macro*/\
}while(0)
这样可以么?

论坛徽章:
0
18 [报告]
发表于 2008-09-05 17:32 |只看该作者
原帖由 flw 于 2008-9-4 14:37 发表

水一句:感觉flw 和 qliu00 俩之间有点什么,哈哈

论坛徽章:
154
2022北京冬奥会纪念版徽章
日期:2015-08-07 17:10:5720周年集字徽章-年
日期:2022-10-26 16:44:2015-16赛季CBA联赛之深圳
日期:2022-11-02 14:02:4515-16赛季CBA联赛之八一
日期:2022-11-28 12:07:4820周年集字徽章-20	
日期:2023-07-19 08:49:4515-16赛季CBA联赛之八一
日期:2023-11-04 19:23:5115-16赛季CBA联赛之广夏
日期:2023-12-13 18:09:34
19 [报告]
发表于 2011-11-29 21:18 |只看该作者
gtkmm 发表于 2008-09-01 20:47



    赶紧把楼主拉出去枪毙5分钟

论坛徽章:
0
20 [报告]
发表于 2011-11-30 01:46 |只看该作者
对 stl 内置的容器一点都不支持么?
set, map 也就罢了, vector 也不成?
  1. #include<iostream>
  2. #include"foreach.h"

  3. #include <vector>

  4. using namespace std;

  5. int main( int argc,char* argv[])
  6. {
  7.     int array[]={2,3,5,7,9,8,};

  8.     vector<int> varray( array, array+(sizeof(array)/sizeof([0]array) );

  9.     foreach( int& x, varray)
  10.     {
  11.         x*=2;
  12.     }
  13.     cout<<"varray={";
  14.     foreach( int x,varray)
  15.     {
  16.         cout<<x<<",";
  17.     }
  18.     cout<<"\b}\n";
  19.     return 0;
  20. }
复制代码
___________foreach.h_______________




_____________测试用代码______________



__________ ...
gtkmm 发表于 2008-09-01 20:41
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP