使用新的基于范围的for循环,我们可以编写类似的代码
for(auto x: Y) {}
Run Code Online (Sandbox Code Playgroud)
哪个IMO是一个巨大的进步(例如)
for(std::vector<int>::iterator x=Y.begin(); x!=Y.end(); ++x) {}
Run Code Online (Sandbox Code Playgroud)
可以用它来循环两个同时循环,比如Pythons zip函数吗?对于那些不熟悉Python的人,代码如下:
Y1 = [1,2,3]
Y2 = [4,5,6,7]
for x1,x2 in zip(Y1,Y2):
print x1,x2
Run Code Online (Sandbox Code Playgroud)
作为输出 (1,4) (2,5) (3,6)
我有一个vector<int>有整数的容器(例如{1,2,3,4}),我想转换为表格的字符串
"1,2,3,4"
Run Code Online (Sandbox Code Playgroud)
在C++中最干净的方法是什么?在Python中,我就是这样做的:
>>> array = [1,2,3,4]
>>> ",".join(map(str,array))
'1,2,3,4'
Run Code Online (Sandbox Code Playgroud) 有没有一种方便的方法来获取C++ 11 foreach循环中当前容器条目的索引,就像enumerate在python中一样:
for idx, obj in enumerate(container):
pass
Run Code Online (Sandbox Code Playgroud)
我可以想象一个迭代器也可以返回索引或类似的东西.
当然我可以有一个计数器,但通常迭代器不保证它们在容器上迭代的顺序.