STL--list

定义:
typedef struct TAGFD_RECORDINFO
{
   xxx
}TFD_RECORDINFO, *PTFD_RECORDINFO;

std::list<PTFD_RECORDINFO> m_ListRecordInfo;
添加
m_ListRecordInfo.push_back( ptRecordInfo );
删除:
   PTFD_RECORDINFO ptRecordInfo;
   if( m_ListRecordInfo.size() > 0 )
   {
    list<PTFD_RECORDINFO>::iterator iter;
  iter = m_ListRecordInfo.begin();
  if( *iter )
  {
    ptRecordInfo = *iter;
    delete ptRecordInfo;
    ptRecordInfo = NULL;
  }
  m_ListRecordInfo.pop_front();
    }
销毁:
    PTFD_RECORDINFO ptRecordInfo;
   if( m_ListRecordInfo.size() > 0 )
   {
    list<PTFD_RECORDINFO>::iterator iter;
     for( iter = m_ListRecordInfo.begin(); iter != m_ListRecordInfo.end(); iter++ )
     {
   if( *iter )
   {
     ptRecordInfo = *iter;
     delete ptRecordInfo;
     ptRecordInfo = NULL;
   }
     }
   }  
排序 sort

Arranges the elements of a list in ascending order or with respect to some other user-specified order relation.

void sort();
template<class pred>
    void sort(Pred pr);

这两个成员函数都会按下面所描述的谓词来对被控序列中的元素排序。
   假设迭代器Pi指向位于位置i处的元素,Pj指向位于位置j处的元素,当i<j时,第一个成员函数要求!(*Pj<*Pi)为true。(即元素是以生序排序的。)模板成员函数要求当i<j时,!pr(*Pj,*Pi)为true。最初被控序列中排序好的元素对在结果序列中的位置关系不会改变(即排序是稳定的)。
仅有在pr抛出异常时这两个成员函数才 会有异常发生。在这种情况下,被控序列将处于一个未指定的排序状态下,而异常则继续向外抛出。

const_iterator和const iterator

前一个是标准库定义好的,一个是你自己定义的.通过简单的代码区别,更能说明问题,希望你能明白 

vector<int> ivec;

 vector<int>::const_iterator citer1 = ivec.begin(); 

const vector<int>::iterator citer2 = ivec.begin();

*citer1 = 1; //error  *citer2 = 1; //right  ++citer1; //right  ++citer2; //error

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山西茄子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值