本文整理汇总了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;
}
示例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;
}
示例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;
}
示例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));