STL的学习笔记之一

原创 2001年04月04日 08:49:00

以下是我在自学STL的一点笔记,参考书籍《标准C++宝典》。大家如果谁也对最新的C++标准有兴趣的话,想聊一聊,我的E-MAIL:  tlovexyj@21cn.com

#include <vector>
using namespace std;
向量类模板 vector

1.特点
  优点: 随机访问、动态改变自身大小、快速地在序列尾部插入和删除元素
  缺点: 在除头尾其它位置插入和删除元素效率降低(因为要移动元素以容纳新元素或回收被删除的空间)

2.声明
  vector <数据类型> 对象名(大小, 初始值)
      例: 
          vector <int> iVector(100, 0);  //大小为100,类型为int,初始所有值为0.

3.访问
  通过指示器 iterator(相当于C++里的指针)来操作.
  声明
    vector <数据类型>::iterator 对象名
      例:
          vector <int>::iterator iter;
     
4.访问
  遍历:
    for (iter=iVector.begin(); iter<iVector.end(); iter++);
      //*iter即为向量iVector里各项的值
  取随机值
    iVector.at(下标);
   
5.插入元素(以下介绍都是vector类的成员函数)
    push_back(元素) //在尾部插入
      例:
          iVector.push_back(3);
   
    insert(iterator指针, 元素) //随机插入, iterator用来标明操作的位置
      例:
          vector <int>::iterator start;
          iVector.insert(start, 1);
       
  insert(iterator指针, 个数, 元素) //把元素的n份拷贝到向量中指针所指定的位置
      例:
          vector <int>::iterator start;
          iVector.insert(start, 5, 1);
       
  insert(iterator指针, iterator指针开始, iterator指针结尾) //将操作的范围内的值插入到指定位置
      例:
          vector <int>::iterator i, start, end;
          i    =iVector.begin();
          start=iVector.begin()+2;
          end  =iVector.end()-3;
          iVector.insert(i, start, end);
 
6.删除元素(以下介绍都是vector类的成员函数)
    pop_back() //在尾部删除
      例:
          iVector.push_back();
   
  erase(iterator指针) //随机删除
  erase(iterator指针开始, iterator指针结尾)//删除范围内的值

《STL源码剖析》学习笔记

第二章:空间配置器(allocator) 考虑到小型区块可能造成的内存破碎问题,SGI设计了双层级配置器。 当配置区块超过128bytes时,便调用第一级配置器,即直接使用malloc() free(...
  • qiaominghe
  • qiaominghe
  • 2016年05月27日 09:05
  • 1523

【C++研发面试笔记】5. C++ STL数据结构

【C++研发面试笔记】5. C++ STL数据结构(容器)5.1 常见数据结构(容器)分类 vector:(连续的空间存储,可以使用[]操作符)快速的访问随机的元素,快速的在末尾插入元素,但是在序列中...
  • tostq
  • tostq
  • 2016年10月02日 18:12
  • 1530

学习STL map, STL set之数据结构基础

STL map和set的使用虽不复杂,但也有一些不易理解的地方,如: 或许有得人能回答出来大概原因,但要彻底明白,还需要了解STL的底层数据结构。 C++ STL 之所以得到广泛的赞誉,也被很多人使用...
  • acpchenpeng
  • acpchenpeng
  • 2016年01月25日 10:48
  • 257

STL源码剖析学习笔记(一)

本文主要是对侯捷《STL源码剖析》学习的知识点总结,以及自己搜集到的资料以及理解,若有任何建议以及意见请联系本人 那么,准备迎接吧...
  • es_tech
  • es_tech
  • 2017年01月08日 23:17
  • 169

STL基础篇(适合初学者快速入门)

1.       STL 是什么 作为一个C++ 程序设计者,STL 是一种不可忽视的技术。 Standard Template Library (STL) :标准模板库, 更准确的说是 C++ 程...
  • a20102110080212
  • a20102110080212
  • 2013年09月14日 11:52
  • 2294

STL源码学习总结及项目下载地址

从开始看STL源码到今天差不多有一个月的时间了,在这研读STL源码过程中确实学习到了很多,深深被大师们的设计思想所打动。其中使用迭代器的思想是其STL的最大的亮点,通过泛型编程,是得所有的容器对外都提...
  • a_1_2_ab
  • a_1_2_ab
  • 2014年04月29日 09:45
  • 1105

《泛型编程与STL》读书笔记

本书从概念和设计上讲述了泛型编程。个人认为只需要阅读前面九章即可(实际上我只读了前面七章),后面章节是一些算法和API的讲述,可以在用到的时候再来查阅。 全书N次提到concept,model以及re...
  • mr_cai2009
  • mr_cai2009
  • 2015年01月05日 17:01
  • 1182

Linux学习笔记之——起始篇

摘要:学习笔记目录、方便以后回顾、没有什么捷径可走、不断的记录、总结、练习、coding、coding。...
  • chenghuaying
  • chenghuaying
  • 2014年03月31日 16:47
  • 4550

在计算机学习,善用“笔记软件”

为知笔记 Linux 版 2015-12-03 产品更新 提示:软件的名称由wiznote修改为WizNote,在终端命令行下需要使用WizNote来打开程序。 更新日志: 2.3.2 版本(201...
  • Lina_ACM
  • Lina_ACM
  • 2016年08月03日 10:41
  • 802

斯坦福机器学习网易公开课笔记1

之前在coursera上看了Andrew Ng的机器学习课程,那个课程比较简明,适合对机器学习有一个整体的印象,但是很多细节的内容和推导都忽略了。现在想要了解机器学习更多,所以开始看Andrew Ng...
  • zhonglj0314
  • zhonglj0314
  • 2017年02月20日 09:57
  • 529
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:STL的学习笔记之一
举报原因:
原因补充:

(最多只允许输入30个字)