int main() {
boost::regex reg("(\\d+),?");
std::string s="1,1,2,3,5,8,13,21";
boost::sregex_iterator it(s.begin(),s.end(),reg);
boost::sregex_iterator end;
regex_callback c;
int sum=for_each(it,end,c).sum();
}
あなたが見ることができるように、for_eachに渡された過去エンドイテレータは単に regex_iteratorのデフォルト・構築インスタンスです。デフォルトの構築されたイテレータをワンパスエンドランドマークに使用できるのはなぜですか?
質問>end
がどのコンテナに関連付けられていないため、どのようstd::for_each
は、コンテナのONE-PASS-ENDのランドマークとして使用することができませんか?
私はまだ、さまざまなコンテナで動作するエンドイテレータを設計する方法を理解できません。 – q0987
あなたの例に基づいて、どのように我々は、異なるメモリ空間を占有異なるコンテナそれぞれの間で同じ 'original_defined_end_ptr'を共有することができます。 – q0987
私はq0987 @ –