STL

来源:互联网 发布:小米视频电视直播软件 编辑:程序博客网 时间:2024/06/05 16:34
 

STL包含三大类,容器类(可以存储其他对象的对象),算法(一系列封装好的函数),迭代器(用于遍历操作的类)
     容器可以直接存储对象,也可以存储对象的指针。成熟的程序员喜欢使用间接存储。
     容器主要包括两种类型:序列类(一般是线形存储)和关联类(一般是非线性存储)。

     vector  ----   数组  可变长   不提供pop_front()删除头元素的函数
      list      -----  链表
     
      (1)Vector    v[1000]当越界的时候,会出现段错误
                               v.at(1000) 越界的时候,会抛出out_of_range的异常,在程序中捕获
                               v.size()  返回长度,可利用这个循环迭代
                               v.empty()判断容器是否为空
                              
                               Iterator迭代器  : 可以做取*操作   *iterator
                                                              iter->name  <=> (*iter).name
                                                              iter++
                                                             
                               v.begin()  指向数组的开始
                               v.end()      指向数组最后一个元素的后面,是一个结束标志
                              
                               vector<int> v1;
                              vector<int>::iterator it;         //iterator是vector的一个内部类
                              for( it = v1.begin(); it != v1.end(); it++ )
                                            cout << *it << endl;

                               v.insert(iter,5);            //在iter所指的元素前面插入5
                               v.insert(iter,5,100);    //在iter所指的元素前插入5个100
                               这样的插入操作,会造成原来的iterator失效,对起重新赋值,可以保证继续使用
                              
      (2)list
               不能做at()
               多了push_front(),pop_front()
               iter不能做加n操作
               使用于做频繁的插入删除操作

原创粉丝点击