나는 std::map<int, int>
과 std::list<std::map<int, int>::const_iterator>
을가집니다.컨테이너에 다른 컨테이너의 반복자를 채우기
STL 알고리즘을 사용하여 list
에 map
의 모든 반복자를 순서대로 채울 수 있습니까?
가능한 경우 명시 적 루프를 사용하고 싶지 않습니다.
나는 std::map<int, int>
과 std::list<std::map<int, int>::const_iterator>
을가집니다.컨테이너에 다른 컨테이너의 반복자를 채우기
STL 알고리즘을 사용하여 list
에 map
의 모든 반복자를 순서대로 채울 수 있습니까?
가능한 경우 명시 적 루프를 사용하고 싶지 않습니다.
STL의 알고리즘은 값이있는 펑터를 호출하며 반복기를 사용하지는 않습니다. 당신이 명시 적 루프를 피하는 집착하는 경우 당신은 값으로 반복자와 iota
를 사용하려고 수 있습니다
list.resize(map.size());
std::iota(std::begin(list), std::end(list), std::begin(map));
Demo합니다.
고마워. 이것이 제가 찾고 있던 것입니다. – peter55555
루프가 포함되지 않으면이 작업을 수행 할 수 없습니다. 'std :: copy()'도 루프를 사용합니다. – Galik
@ Galik 아마도 그는 명백한 루프를 의미합니다. – Columbo
@ 갈릭 : 예. 좋은 작성된 코드에 대해 생각했습니다. 한 줄에 STL을 사용합니다. 나는 루프를 사용하여 그 안을 감추고 싶다는 것을 알고 있습니다. – peter55555