bloggerads

2013年10月28日 星期一

C++的Container: List使用範例

#include<list>
#include<iostream>
#include<stdio.h>
using namespace std;

#define  OFFSET_ITERATOR(iterator, offset)  {\
  iterator = obj1.begin(); \
  for (int i=0; i<offset; i++) \
  iterator++;\
 } //將intertaor移動到offset的節點上


void show_list();

list<int> obj1;//建一個空的list對像
list<int>::iterator j;
list<int>::iterator k;

int main(void)
{

   for(int i=0;i<10;i++)
       obj1.push_front(i);

   show_list();

   // Remove first node (pop front)     
   obj1.pop_front();  printf(">obj1.pop_front();\n");
   show_list();
   
   // Remove node
   OFFSET_ITERATOR(j, 4);
   obj1.erase(j);    printf(">obj1.erase(4); //delete node: j-1, i.e. 4\n");
   show_list();
  
   // Insert node 
   OFFSET_ITERATOR(j, 4);
   obj1.insert(j, 55);  printf(">obj1.insert(4, 55);\n");
   show_list();
   
   // Remove node from j to k-1, where (j, k)=(2, 4)
   OFFSET_ITERATOR(j, 2);
   OFFSET_ITERATOR(k, 4);
   obj1.erase(j, k);     printf(">obj1.erase(2, 3); //delete node: j~k-1, i.e. 2~3\n");
   show_list();
   
   system("pause");
   return 0;
}

void show_list()
{
   for (j=obj1.begin(); j!=obj1.end(); j++)
      cout<< *j <<"  ";
    printf("\n");
}




沒有留言:

張貼留言