void U305::operator()() { std::vector<size_t> answers; answers.reserve(15); answers.push_back(0); std::generate_n(std::back_inserter(answers), 15, [&]() -> size_t { size_t probe(1); size_t k = answers.size(); for (; circle_count(k, ++probe) != k;); return probe; }); std::istream_iterator<size_t> iin(std::cin); std::ostream_iterator<size_t> iout(std::cout, "\n"); std::transform(iin, std::istream_iterator<size_t>(), iout, [&](auto k) -> size_t { return answers[k]; }); }
int main() { const char *cstr = "\nHello Github"; // Create iostream iterators std::ostream_iterator<char> chout0(std::cout); std::ostream_iterator<double> dout0(std::cout, cstr); // Use istream iterator operations std::cout << std::boolalpha; std::istream_iterator<int> iin(std::cin); std::cout << "++iin : " << *(++iin) << std::endl; std::cout << "iin++ : " << *iin++ << std::endl; std::istream_iterator<std::string> sin(std::cin); std::cout << "*sin.size() : " << sin->size() << std::endl; std::istream_iterator<char> chin0(std::cin), chin1(std::cin); std::cout << "chin0 == chin1 : " << (chin0 == chin1) << std::endl; std::cout << "chin0 != chin1 : " << (chin0 != chin1) << std::endl; std::cout << "value in chin1 : " << *chin1 << std::endl; // Use iostream iterator operations char c_val('v'); std::cout << "c_val = "; chout0 = c_val; std::cout << std::endl; double d_val(84.34); std::cout << "d_val = "; dout0 = d_val; std::cout << std::endl; // Read and write iostream iterators std::ifstream ifs("topics.txt"); if(ifs.is_open()){ std::istream_iterator<std::string> str_it(ifs); std::istream_iterator<std::string> str_end; while(++str_it != str_end) std::cout << *str_it << std::endl; } return 0; }