doc_list_algorithms.cpp

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

CPP
67
字号
///////////////////////////////////////////////////////////////////////////////// (C) Copyright Ion Gaztanaga  2006-2007//// Distributed under 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)//// See http://www.boost.org/libs/intrusive for documentation./////////////////////////////////////////////////////////////////////////////////[doc_list_algorithms_code#include <boost/intrusive/circular_list_algorithms.hpp>#include <cassert>struct my_node{   my_node *next_, *prev_;   //other members...};//Define our own list_node_traitsstruct my_list_node_traits{   typedef my_node                                    node;   typedef my_node *                                  node_ptr;   typedef const my_node *                            const_node_ptr;   static node_ptr get_next(const_node_ptr n)         {  return n->next_;  }     static void set_next(node_ptr n, node_ptr next)    {  n->next_ = next;  }     static node *get_previous(const_node_ptr n)        {  return n->prev_;  }     static void set_previous(node_ptr n, node_ptr prev){  n->prev_ = prev;  }  };int main(){   typedef boost::intrusive::circular_list_algorithms<my_list_node_traits> algo;   my_node one, two, three;   //Create an empty doubly linked list container:   //"one" will be the first node of the container   algo::init_header(&one);   assert(algo::count(&one) == 1);   //Now add a new node before "one"   algo::link_before(&one, &two);   assert(algo::count(&one) == 2);   //Now add a new node after "two"   algo::link_after(&two, &three);   assert(algo::count(&one) == 3);   //Now unlink the node after one   algo::unlink(&three);   assert(algo::count(&one) == 2);   //Now unlink two   algo::unlink(&two);   assert(algo::count(&one) == 1);   //Now unlink one   algo::unlink(&one);   assert(algo::count(&one) == 1);   return 0;}//]

⌨️ 快捷键说明

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