C++11中自定义range
2016-12-19 23:26
691 查看
python中的range功能非常好用
现在利用C++11的基于范围的for循环特性实现C++中的range功能
例:
for i in range(100): print(i)
现在利用C++11的基于范围的for循环特性实现C++中的range功能
class range { public: range(int end) { _begin = 0; _end = end; _step = 1; } range(int begin, int end, int step=1) { _begin = begin; _end = end; _step = step; if (!_step) // 步长为0, 设为默认值1 _step = 1; } class iterator { public: iterator(int x, int s=1) { n = x; step = s; } iterator &operator++() { n += step; return *this; } bool operator!=(const iterator &x) { return (step>0)? n<x.n : n>x.n; } int &operator*() { return n; } private: int n, step; }; iterator begin() { return iterator(_begin, _step); } iterator end() { return iterator(_end, _step); } private: int _begin, _end, _step; };
例:
for(auto i: range(10)) std::cout << i << std::endl; for(auto i: range(10, 100)) std::cout << i << std::endl; for(auto i: range(10, 100, 2)) std::cout << i << std::endl; for(auto i: range(100, 10, -2)) std::cout << i << std::endl;
相关文章推荐
- C++ 64位自定义随机数生成器的使用 <random> 参照C++11
- c++11智能指针(二):shared_ptr和自定义的Deleter
- c++11 : range-based for loop
- C++11 为自定义容器实现标准的forward迭代器
- highchart columnrange自定义颜色
- 如何使用自定义的 number range objects
- C++11 Range for Statement
- 用c++11打造类似于python的range
- Krajee DateRangePicker 1.6.7版不能自定义 range选项解决
- 自定义文件下载支持断点续传(HTTP_RANGE Adodb.Stream)
- c++11 : range-based for loop
- 自定义 C++ 中的 range() 函数
- 自定义消息块 ON_COMMAND_RANGE,ON_UPDATE_COMMAND_UI_RANGE
- 随机播放音效 在音频组件中添加好元素 Random.Range在自定义的函数中可以用整形
- (干货)自定义 type="range" type="radio" select的样式
- C++11 用户自定义字面值
- C++11新特性:range based for loop-范围for循环基本使用方法
- 自定义(滑动条)input[type="range"]样式
- 让自定义文件下载支持断点续传(HTTP_RANGE Adodb.Stream)
- MVC学习十四:ASP.NET MVC如何实现自定义验证 AgeRangeAttribute