当前位置: 首页>>代码示例>>C++>>正文


C++ iter::range方法代码示例

本文整理汇总了C++中iter::range方法的典型用法代码示例。如果您正苦于以下问题:C++ iter::range方法的具体用法?C++ iter::range怎么用?C++ iter::range使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在iter的用法示例。


在下文中一共展示了iter::range方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: main

int main() {
    std::vector<int> ivec{1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4};
    for (auto& i : dropwhile([] (int i) {return i < 5;}, ivec)) {
        std::cout << i << '\n';
        i = 69;
    }
    assert(ivec.at(0) == 1);
    assert(ivec.at(4) == 69);

    for (auto i : dropwhile([] (int i) {return i < 5;}, range(10))) {
        std::cout << i << '\n';
    }

    for (auto i : dropwhile([] (int i) {return i < 5;}, 
                {1, 2, 3, 4, 5, 6, 7, 8, 9})) {
        std::cout << i << '\n';
    }

    for (auto i : dropwhile([] (int i) {return i < 5;}, 
                std::vector<int>{1, 2, 3, 4, 5, 6, 7, 8, 9})) {
        std::cout << i << '\n';
    }

    return 0;
}
开发者ID:derekrose,项目名称:cppitertools,代码行数:25,代码来源:testdropwhile.cpp

示例2: main

int main()
{
    for (auto i : range(10)) {
        std::cout << i << std::endl;
    }
    for (auto i : range(20, 30)) {
        std::cout << i << std::endl;
    }
    for (auto i : range(50, 60, 2)) {
        std::cout << i << std::endl;
    }

    std::cout << "Negative Tests\n";
    for (auto i: range(-10, 0)) {
        std::cout << i << std::endl;
    }

    for (auto i : range(-10, 10, 2)) {
        std::cout << i << std::endl;
    }

    std::cout << "Tests where (stop - start)%step != 0" << std::endl;
    for (auto i : range(1, 10, 2)) {
        std::cout << i << std::endl;
    }

    for (auto i : range(-1, -10, -2)) {
        std::cout << i << std::endl;
    }
    
    // invalid ranges:
    std::cout << "Should not print anything after this line until exception\n";
    for (auto i : range(-10, 0, -1)) {
        std::cout << i << std::endl;
    }

    for (auto i : range(0, 1, -1)) {
        std::cout << i << std::endl;
    }

    std::cout << "Should see exception now\n";
    for (auto i : range(0, 10, 0) ) {
        std::cout << i << std::endl;
    }

    return 0;
}
开发者ID:dmckeone,项目名称:cppitertools,代码行数:47,代码来源:testrange.cpp

示例3: main

int main() {
    std::vector<int> ivec{1, 2, 3, 4, 5, 6, 7, 6, 5, 4, 3, 2, 1};
    for (auto i : takewhile([] (int i) {return i < 5;}, ivec)) {
        std::cout << i << '\n';
    }

    for (auto i : takewhile([] (int i) {return i < 5;}, range(10))) {
        std::cout << i << '\n';
    }

    for (auto i : takewhile([] (int i) {return i < 5;}, 
                {1, 2, 3, 4, 5, 6, 7, 8, 9})) {
        std::cout << i << '\n';
    }

    std::cout << "with temporary\n";
    for (auto i : takewhile([] (int i) {return i < 5;}, 
                std::vector<int>{1, 2, 3, 4, 5, 6, 7, 8, 9})) {
        std::cout << i << '\n';
    }

    return 0;
}
开发者ID:derekrose,项目名称:cppitertools,代码行数:23,代码来源:testtakewhile.cpp

示例4: v

#include "range.hpp"

#include <vector>
#include <iterator>
#include <algorithm>

#include "catch.hpp"

using Vec = const std::vector<int>;
using iter::range;


TEST_CASE("Range works with only stop", "[range]") {
    auto r = range(5);
    Vec v(std::begin(r), std::end(r));
    Vec vc{0, 1, 2, 3, 4};

    REQUIRE( v == vc );
}

TEST_CASE("Range works with start and stop", "[range]") {
    auto r = range(1, 5);
    Vec v(std::begin(r), std::end(r));
    Vec vc {1, 2, 3, 4};

    REQUIRE( v == vc );
}

TEST_CASE("Range works with positive step > 1", "[range]") {
    auto r = range(1, 10, 3);
    Vec v(std::begin(r), std::end(r));
开发者ID:mgsergio,项目名称:cppitertools,代码行数:31,代码来源:test_range.cpp


注:本文中的iter::range方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。