记录爱忘记的STL知识点

1、vector容器初始化

//定义一个vector
    vector <int> vec;
    vector <int> vec1(12);//12个int类型元素,每个元素的初始值均为0
    vector <int> vec2(12,9);//12个int,初试值均为9
    //使用数组初始化vector
    int a[]={0,1,2,3,4,5,6,7,8,9,0};
    //vector <数据类型> <容器名> (<开始地址>,<结束地址的下一个地址> )。执行过vt中元素为1,2,3
    vector <int> vt(a+1,a+4);
    //在尾部压入3个值
    vt.push_back(1);
    vt.push_back(2);
    vt.push_back(3);
    //定义迭代器iterator
    vector <int>::iterator iter=vt.begin();//起始地址
    vector <int>::iterator iter_end=vt.end();//结束地址,两个地址都是指针类型
    //遍历vt
    for(;iter!=iter_end;iter++)
    {
        cout<<*iter<<endl;
    }

    //弹出一个元素
    vt.pop_back();

    //以下两行重新获得起始和结尾地址
    iter=vt.begin();
    iter_end=vt.end();
    cout<<"----------executed pop_back------"<<endl;
    for(;iter!=iter_end;iter++)
    {
        cout<<*iter<<endl;
    }

    //插入元素
    cout<<"----------insert into------------"<<endl;
    //插入格式:vector.insert(<起始地址>,<插入的数量>,<元素值>);如果插入的数量为1,则第二个参数可以被省略
    vt.insert(vt.begin()+1,3,9);
    iter=vt.begin();
    iter_end=vt.end();
    for(;iter!=iter_end;iter++)
    {
        cout<<*iter<<endl;
    }

    //删除元素
    cout<<"----------erase-------------------"<<endl;
    //删除格式1为:vector.erase(<删除元素的地址>);
    //删除格式2为:vector.erase(<删除元素的起始地址>,<终止地址>);
    iter=vt.begin();
    iter_end=vt.end();
    vt.erase(iter+1,iter_end);//删除第二个到最后一个的元素
    iter_end=vt.end();
    for(;iter!=iter_end;iter++)
    {
        cout<<*iter<<endl;
    }

原文地址:https://www.cnblogs.com/westlife-11358/p/9434192.html

时间: 2024-10-09 18:35:46

记录爱忘记的STL知识点的相关文章

记录神经网络中一些小知识点

记录神经网络中一些小知识点 1 Caffe中的blob维度 Caffe中的blob具有4个维度,分别是num,channel,width和height: 其中我们在定义各个网络层时,常用到的一个参数numout,就是指定的channel: 比如说,维度为1*3*5*5的数据输入网络(即每次输入一张5*5大小的3通道图),经过一个stride为2,pad为1,kernel为2,numout为2的卷积层后,维度就变成了1*2*3*3: 假如输入有n个通道,计算时,caffe就会对应产生n个filte

记录容易忘记的知识点(html 内容)

<xx 表文件名> 导入外部样式表 <link type="text/css" rel="stylesheet" href="xx.css"/> { link 标签定义文档与外部资源的关系. type:定义文档所用的MIME类型. rel:relationship的英文缩写. REL 属性用于定义链接的文件和HTML文档之间的关系.StyleSheet,的意思就是样式调用,REL=StyleSheet 指定一个固定或首选的

一些容易忘记的小知识点

由于经常在linux的服务器上进行操作,因此一些经常使用的命令老是忘记,现在再此做下记录: 1. 经常忘记某个命令的使用方法,习惯使用的是 man,但是使用help 来查询这个命令的使用方法更加的直观. 2.history,使用此命令,清理一些非常敏感的信息(比如说密码,用户名等信息). history -c  表示的是清理所有的历史记录 history -d  num  指定清理那个历史记录 在/root/.mysql_history的文件中,存在着很多之前执行的mysql的一些命令 3.tr

STL知识点总结

一.STL有哪些组件STL提供六大组件,彼此可以组合套用:1.容器容器就是各种数据结构,我就不多说,看看下面这张图回忆一下就好了,从实现角度看,STL容器是一种class template.2.算法各种常见算法,如sort,search,copy,erase等,我觉得其中比较值得学习的就是sort,next_permutation,partition,merge sort,从实现角度看,STL算法是一种function template.3.迭代器扮演容器与算法之间的胶合剂,是所谓的"泛型指针&

老爱忘记的正则表达式

程序里面经常会遇到要规范输入的地方,但是记性不太好,正则表达式都记不住,不纠结了,每次要用到还得去查,不如自己写在这里查起来方便. 来吧,第一个:整数数字 bool System.Text.RegularExpressions.Regex.IsMatch(str, @"^[0-9]*$"); 第二个:手机号码 bool System.Text.RegularExpressions.Regex.IsMatch(st, @"^[1]+[3,5]+\d{9}"); 第三个

C++与STL知识点(2019.1.18)

1.作用对象:数组  a[n] 头文件:#include<algorithm> 内容:sort(a,a+n) 功能:进行升序排序 内容:lower_bound(a,a+n,x) 功能:找到大于等于x的位置 int pos=lower_bound(a,a+n,x)-a; 可以判断x是否存在于该数组 如果存在返回x在的位置pos,x=a[pos-1] (n>pos>0) 如果不存在的话放回pos为大于x的下标(n>=pos>=0) 原文地址:https://www.cnbl

记录下关于RabbitMQ常用知识点(持续更新)

1.端口及说明: 1 4369 -- erlang发现口 2 3 5672 --client端通信口 4 5 15672 -- 管理界面ui端口 6 7 25672 -- server间内部通信口 举例说明 我们访问RabbitMQ管理界面可以访问如下: http://localhost:15672/ 我们连接RabbitMQ的话就要用client端通信口: server: amqp://guest:[email protected]:5672/ 2.重启mq服务 net stop Rabbit

个人知识点总结——Java并发

Java并发实在是一个非常深的问题,这里仅仅简单记录一下Java并发的知识点.水太深.假设不花大量的时间感觉全然hold不住,可是眼下的精力全然不够,兴趣也不在这 什么是线程安全性 某个类的行为和其规范全然一致 当多个线程訪问某个类时.不管运行时环境採用何种调度方式或者这些线程将怎样交替运行.而且在主调代码中不须要不论什么额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的 原子操作(Atomic Operation) 原子操作是指不会被线程调度机制打断的操作,这样的操作一旦

Matlab编程知识点

容易忘记的小知识点: Matlab程序换行(一个空格加上3个.即 ...然后直接下一行就可以继续写代码) Matlab下程序计时 如下:tic和toc可以在程序中使用多个,计算各个程序字块的运行时间.还可以嵌套使用... tic;%计时开始 %%%%%%%%%%% 程序 %%%%%%%%%%% toc;%计时结束 tic和toc可以嵌套使用,都是找最近的toc总是找最近的tic,类似于if end的配合,如果想直接输出运行时间,只要类似于 disp(['拷贝去冗余的数据共花费时间:',num2s