【C++】std::for_each での値の走査
ポインタでのイテレータの begin と end の割り当てに嵌ったのでメモ
#include <iostream> #include <algorithm> #include <array> #include <iterator> int main() { // メモリ走査 int size = 4; int *i = new int[size]; memset(i, 0, sizeof(int) * size); std::for_each(&i[0], &i[size], [](int &x){ x = 1; }); std::copy(&i[0], &i[size], std::ostream_iterator<int>(std::cout, " ")); // 1 1 1 1 std::cout << std::endl; delete [] i; // 配列走査(比較用) std::array<int, 4> ar = {0}; std::for_each(ar.cbegin(), ar.cend(), [](const int &x){ const_cast<int&>(x) = 1; }); std::copy(ar.cbegin(), ar.cend(), std::ostream_iterator<int>(std::cout, " ")); // 1 1 1 1 std::cout << std::endl; return 0; }