c++如何实现foreach(c#中的)功能语句?

是否可以实现?可以的话说说方法就行。
2024-11-17 13:38:08
推荐回答(3个)
回答(1):

#define foreach(elementType, element, containerType, container) \
for (containerType::iterator iter = container.begin(); iter != container.end(); iter++)\
for (bool go = true; go;)\
for (elementType & element = *iter;go; go=false)

假设有个vector如下面的定义:
vector v;

那么遍历v可以使用下面的代码:
foreach(int, e, vector, v)
{//使用(e)来访问v的元素
}

回答(2):

你可以参考STL的迭代器,但是不存在一个普适的迭代器

回答(3):

可以啊
string str;
string[] strs;
foreach( str in strs )
{
str += "123";
}
这样不会越界。