1. 类模板使用方法:类模板名 <数据类型> 对象名;
  2. C++有个标准模板库(STL)(standard template library),编程时使用它会提高程序的可靠性。
  3. Stl 包含了(容器,算法,迭代器)
  4. 容器:容纳,包含相同元素的对象,主要用类模板实现,

    序列型容器: vector 向量

    List 双向链表

    Deque 双端队列

    关联型容器: map 映射

    Set 集合

    容器适配器: stack 栈

    Queue 队列
  5. 迭代器: 是用于确定元素位置的数据类型,可用来遍历容器中的元素

    通过迭代器可以读取、修改它指向的元素,它的用法和指针

    类似

    每一种容器都定义了一种迭代器

    定义容器类迭代器的方法:

    容器类名 <元素类型> :: iterator 变量名

    例: vector :: iterator it;

    访问迭代器指向的元素: *it = 5;
  6. 算法:

    <1>由许多函数模版组成的集合,实现了大量通用算法,用于操控各种容器

    <2>STL中提供的算法涉及到:比较、交换、查找、遍历、复制、修改、移除、反转、排序、合并等。大约有

    <3>70种标准算法算法通过迭代器来操纵容器中的元素
  7. vector 向量

    vector主要特征

    <1>vector实际上就是对动态数组封装可以像数组一样可以使用下标访问元素,若vector长度为n ,则其下标为0~n-1

    <2>根据下标访问元素效率高

    <3>vector对象的空间随着插入删除操作自动调整因为空间自动调整比较耗费时间,因此频繁插入删除的情况下, vector效率稍差
  8. vector创建int型空向量

    vector v1;

    vector v2(v1); //表示将v1复制到v2。

    vector s2( 10 ); //创建10个元素的向量

    vector v3( 10, 1.5 ); //创建10个元素都是1.5的向量

    vector *pvec = new vector (10, -5 ); //创建向量指针
  9. push_back函数,用于向向量的尾部添加元素

    使用pop_ back()删除最后一个元素

    Insert函数示例代码

    vector v1;

    v1.push_ back(1);

    v1.push_ back(2);

    v1.insert(v1.begin() , 0); //头部插入

    v1.insert(v1.end() , 4);//尾部插入,4为插入的值

    v1.insert(v1.end()-1 , 3); //倒数第二位置

    return 0;

    erase函数示例代码

    vl.erase(v1.begin()); //删除0

    vl.erase(v1.begin(), v1.end()); //全删
  10. vector——向量大小相关函数

    v.size() 返回向量的大小

    v.max_ size() 返回向量可容纳的最大个数

    v.empty() 返回向量是否为空

    v.resize(n) 调整向量大小,使其可以容纳n个元素,如果n<v.size(),则删除多出来的元素;否则,添加新元素

    v.resize(n,t) 调整向量的大小,使其可以容纳n个元素,所有新添加的元素初始化为t

    v.capacity() 获取向量的容量,再分配内存空间之前所能容纳的元素个数
  11. vector迭代器:

    迭代器定义:vector :: iterator it; 跟指针十分相似。
  12. 以迭代器为参数的插入删除函数

    v.insert(p,t) 在迭代器p所指向的元素前面插入值为t的元素

    v.insert(p,n,t) 在迭代器p所指向的元素前面插入n个值为的新元素

    v.insert(p,b,e) 在迭代器p所指向的元素前面插入迭代器b和e标记的范围内的元素

    v.erase(p) 删除迭代器p指向的容器中的元素

    v.erase(b,e) 删除迭代器b和e所标记范围内的元素
  13. 使用迭代器循环删除会出现错误,

    解决办法

    在C++11标准中, erase()会返回- -个iterator ,这个iterator指向了 "当前删除元素的后继元素”
  14. map

    map创建及添加元素

    map类定义在头文件中

    创建map对象: map <int, string> StuInfo;

    这就定义了-一个用int作为键,相关联string为值的map

    插入pair对象: pair <int, string> mypair(1, "Tom");

    StuInfo.insert(mypair);

    或 StuInfo.insert(pair <int, string> (5, "Jack' ));

    键不可修改,只能修改值。

第十四周C++学习总结的更多相关文章

  1. 201521123061 《Java程序设计》第十四周学习总结

    201521123061 <Java程序设计>第十四周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据 ...

  2. 201521123072《java程序设计》第十四周学习总结

    201521123072<java程序设计>第十四周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库 ...

  3. 201521123038 《Java程序设计》 第十四周学习总结

    201521123038 <Java程序设计> 第十四周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 接口: DriverManager ...

  4. 201521123122 《java程序设计》第十四周学习总结

    ## 201521123122 <java程序设计>第十四周实验总结 ## 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. M ...

  5. 杨其菊201771010134《面向对象程序设计(java)》第十四周学习总结

    第十四周学习总结 第一部分:理论知识 理论知识:本周学习Swing用户界面 内容:Swing与模型-视图-控制器设计模式:布局管理概述:文本输入 :选择组件:菜单:复杂的布局管理:对话框: 第二部分: ...

  6. 201671010140. 2016-2017-2 《Java程序设计》java学习第十四周

      java学习第十四周       本周,主要精力放在了第十二章swing用户界面组件知识的学习,swing是一个用于开发Java应用程序用户界面的开发工具包.它以抽象窗口工具包(AWT)为基础使跨 ...

  7. 201871010111-刘佳华《面向对象程序设计(java)》第十四周学习总结

    201871010111-刘佳华<面向对象程序设计(java)>第十四周学习总结 实验十二  Swing图形界面组件(一) 实验时间 2019-11-29 第一部分:基础知识总结 1.设计 ...

  8. 201271050130-滕江南-《面向对象程序设计(java)》第十四周学习总结

    201271050130-滕江南-<面向对象程序设计(java)>第十四周学习总结 项目 内容 这个作业属于哪个课程 <任课教师博客主页链接> https://www.cnbl ...

  9. 201871010104-陈园园 《面向对象程序设计(java)》第十四周学习总结

    201871010104-陈园园 <面向对象程序设计(java)>第十四周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...

随机推荐

  1. C++——自然数求和

    代码如下: #include <iostream> using namespace std; int main() { int a,sum=; for(int i=;i<=;i++) ...

  2. EasyPoi导出Excel

    这几天一直在忙工作中的事情,在工作中有一个问题,可能是因为刚开始接触这个EasyPoi,对其也没有太多的理解,在项目中就使用了,有一个需求,是要导出项目中所有的表格,今天就对这个需求进行分析和实现吧; ...

  3. ThinkPHP6.0 模型搜索器的使用

    搜索器用于封装查询条件表达式,必须在模型中定义,只有使用模型操作数据时才能用搜索器.调用搜索器时使用的是数据表字段,可以不用定义搜索器方法,默认是 = 条件:如果不是数据表字段,必须定义对应的搜索器方 ...

  4. Linux curl携带cookie测试接口

    问题: 休息在家,被告知要启动测试环境的一个定时任务,但是服务器在内网,连上vpn只能访问内网的开发环境,无法访问测试环境,于是进开发环境服务器,ping测试环境的ip,发现是通的,于是想到通过开发环 ...

  5. redis设置密码和查询密码

    编辑redis.windows.conf配置来启用认证. 1.初始化Redis密码: 在配置文件中有个参数: requirepass  这个就是配置redis访问密码的参数: 比如 requirepa ...

  6. Java 合并、拆分PPT幻灯片

    序 在日常使用PPT时,为了便于操作和管理文档,时常会遇到需要将PPT幻灯片进行合并或拆分的情况.本文将通过Java程序来演示如何进行上述操作. 示例要点: 1. 合并PPT幻灯片 1.1 将第一个P ...

  7. xss中shellcode的调用

    shellcode就是利用漏洞所执行的代码 在完整的xss攻击之中,会将shellcode存放在一定的地方,然后触发漏洞,引发shellcode. 1.远程调用执行js 可将js代码单独放在一个js文 ...

  8. 本周 GitHub 速览:自动化当道,破密、爬虫各凭本事

    作者:HelloGitHub-小鱼干 摘要:安全门外汉,如何在不知道密钥或密码的情况下,破解哈希得到原文,Ciphey 会告诉你当中的密码.说到 auto 智能爬虫会基于上一次的爬虫经历进一步学习以获 ...

  9. .NetCore之接口缓存

    1.问题:我们平时做开发的时候肯定都有用到缓存这个功能,一般写法是在需要的业务代码里读取缓存.判断是否存在.不存在则读取数据库再设置缓存这样一个步骤.但是如果我们有很多地方业务都有用到缓存,我们就需要 ...

  10. 2.Strom-入门案例