node_iterator3.cpp

来自「Boost provides free peer-reviewed portab」· C++ 代码 · 共 44 行

CPP
44
字号
// Copyright David Abrahams 2004. Use, modification and distribution is// subject to the Boost Software License, Version 1.0. (See accompanying// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)#include "node_iterator3.hpp"#include <string>#include <memory>#include <iostream>#include <algorithm>#include <boost/mem_fn.hpp>#include <cassert>int main(){    std::auto_ptr<node<int> > nodes(new node<int>(42));    nodes->append(new node<std::string>(" is greater than "));    nodes->append(new node<int>(13));    // Check interoperability    assert(node_iterator(nodes.get()) == node_const_iterator(nodes.get()));    assert(node_const_iterator(nodes.get()) == node_iterator(nodes.get()));        assert(node_iterator(nodes.get()) != node_const_iterator());    assert(node_const_iterator(nodes.get()) != node_iterator());        std::copy(        node_iterator(nodes.get()), node_iterator()      , std::ostream_iterator<node_base>(std::cout, " ")    );    std::cout << std::endl;        std::for_each(        node_iterator(nodes.get()), node_iterator()      , boost::mem_fn(&node_base::double_me)    );    std::copy(        node_const_iterator(nodes.get()), node_const_iterator()      , std::ostream_iterator<node_base>(std::cout, "/")    );    std::cout << std::endl;    return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?