C++ 容器之 list的使用

c++ list api

assign() 给list赋值 
back() 返回最后一个元素 
begin() 返回指向第一个元素的迭代器 
clear() 删除所有元素 
empty() 如果list是空的则返回true 
end() 返回末尾的迭代器 
erase() 删除一个元素 
front() 返回第一个元素 
get_allocator() 返回list的配置器 
insert() 插入一个元素到list中 
max_size() 返回list能容纳的最大元素数量 
merge() 合并两个list 
pop_back() 删除最后一个元素 
pop_front() 删除第一个元素 
push_back() 在list的末尾添加一个元素 
push_front() 在list的头部添加一个元素 
rbegin() 返回指向第一个元素的逆向迭代器 
remove() 从list删除元素 
remove_if() 按指定条件删除元素 
rend() 指向list末尾的逆向迭代器 
resize() 改变list的大小 
reverse() 把list的元素倒转 
size() 返回list中的元素个数 
sort() 给list排序 
splice() 合并两个list 
swap() 交换两个list 
unique() 删除list中重复的元素

 

1、List 装入引用或指针的方式

  push_back()

  push_front()

  pop_back()

  pop_front()

#include <iostream>
#include <list>
using namespace std;

class A{
public:
    virtual void print(){cout<<"A::print()"<<endl;}
};
class B: public A{
public:
    void print(){cout<<"B::print()"<<endl;}
};
int main(int argc, char* argv[]){
    A *pa = new A;
    B *pb = new B;
    list<A*> temp;
    list<A*>::iterator iter;
    temp.push_back(pa);
    temp.push_back(pb);
    for(iter=temp.begin(); iter!=temp.end(); ++iter){
        (*iter)->print();
        delete(*iter);
    }

    return 0;
}

 

2、根据position查找对象

    actorPosition = (actorPosition + 1) % activePlayers.size();
    list<Player*>::iterator iter = activePlayers.begin();
    advance(iter, actorPosition);
    actor = *iter; // Potion对应的Object
    // actor = activePlayers.front();
    // actor = iter.front();

 

3、遍历

itor=ilist.begin();
       while(itor!=ilist.end())
       {
          cout<< *itor++<<endl;
       } 

 

 

-----

posted @ 2018-09-25 15:25  戒骄戒躁-沉淀积蓄  阅读(513)  评论(0)    收藏  举报