c++用于循环不同的方式
c++ for loop different way
最近,我找到了一种从std::partition_point输出向量的漂亮方法。
std::cout << "odd:";
for (int& x:odd) std::cout << ' ' << x;
std::cout << 'n';
有人能简要描述一下它是如何工作的以及为什么工作的吗?如果有人能在文档中找到for循环的用法,我将不胜感激,不幸的是,我没有在http://www.cplusplus.com/.
这是C++的一个基于范围的循环:指定一个循环变量和一个容器,编译器生成迭代容器的代码,并在执行循环体之前依次为容器的每个项分配循环变量。这个循环结构在C++11之前是不可用的。
请注意,有一种方法可以在不使用循环的情况下输出容器:
std::ostream_iterator<int> out_it (std::cout, " ");
std::copy( odd.begin(), odd.end(), out_it );
我认为您可能对boost::foreach实现感兴趣:http://www.boost.org/doc/libs/1_54_0/doc/html/foreach.html.这并不完全是循环标准的实现,但您可以调试和研究foreach.hpp文件。下面我附上你可能感兴趣的例子:
#include <string>
#include <iostream>
#include <boost/foreach.hpp>
int main()
{
std::string hello( "Hello, world!" );
BOOST_FOREACH( char ch, hello )
{
std::cout << ch;
}
return 0;
}
相关文章:
- 1d 智能指针不适用于语法 (*)++
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 用于访问容器<T>数据成员的正确 API
- 如何在c++中为模板函数实例创建快捷方式
- 重载操作程序时出错>>用于类中的字符串 memebr
- Cython通过浮点数的最快方式,用于高频控制回路
- 用于基于成员字段或函数创建比较器的快捷方式
- 适用于 macOS 的 Xcode 应用程序。这就是我设置从USB麦克风输入获取音频的方式。一年前工作,现在没有了。为什么
- c++ Visual Studio 2015 快捷方式,用于从选择代码中生成功能
- 是否有用于"go to variable type definition" C++中"auto"变量的 Visual Studio 键盘快捷方式?
- 内置用于比较两个(或多个)值的方式
- 用于了解输入和输出流缓冲区实际工作方式的程序
- 是否存在用于按以下方式对两个范围进行排序和分区的标准算法?
- 重载小于 (<) 运算符,用于以多种方式对对象进行排序
- 用于循环的c++(c++11方式和旧版本方式)
- 用于循环的C++没有以其他方式输出
- 比如果其他更好的方式..用于线性插值
- c++用于循环不同的方式
- Can运算符<<用于设计我们自己的输出显示方式
- 如何确定'std::map'创建的用于'boost::pool_allocator'的节点的大小(以跨平台方式)?