// lambda1.cpp -- use captured variables #include #include #include #include #include const long Size = 390000L; int main() { using std::cout; std::vector numbers(Size); std::srand(std::time(0)); std::generate(numbers.begin(), numbers.end(), std::rand); cout << "Sample size = " << Size << '\n'; // using lambdas int count3 = std::count_if(numbers.begin(), numbers.end(), [](int x){return x % 3 == 0;}); cout << "Count of numbers divisible by 3: " << count3 << '\n'; int count13 = 0; std::for_each(numbers.begin(), numbers.end(), [&count13](int x){count13 += x % 13 == 0;}); cout << "Count of numbers divisible by 13: " << count13 << '\n'; // using a single lambda count3 = count13 = 0; std::for_each(numbers.begin(), numbers.end(), [&](int x){count3 += x % 3 == 0; count13 += x % 13 == 0;}); cout << "Count of numbers divisible by 3: " << count3 << '\n'; cout << "Count of numbers divisible by 13: " << count13 << '\n'; // std::cin.get(); return 0; }