首页 > 其他分享 >3.4 STL 学习笔记一

3.4 STL 学习笔记一

时间:2024-03-04 09:56:25浏览次数:23  
标签:迭代 STL 笔记 int 3.4 vector 数组

这是初次学习STL的相关知识。可能之后还会补充笔记。

STL是提高C++编写效率的一个利器

1.#include

vector 是变长数组,支持随机访问,不支持在任意位置O(1)插入。为了保证效率,元素的增删一般应该在末尾进行。

1.1声明

include //头文件

vector a; //相当于一个长度变化的int数组
vectorb[233];//相当于第一维长233,第二维长度动态变化的int数组

struct rec{...};
vector c;//自定义的结构体类型也可以保存在vector中。

1.2size/empty
size函数返回vector的实际长度(包括元素的个数)
empty函数返回一个bool也行,表明vector是否为空。
二者的时间复杂度都是O(1)。

所有的STL容器都支持这两个方法,含义也相同,之后我们就不再重复给出。 ??? header

1.3clear
clear函数把vector清空。

1.4迭代器
迭代器就像STL容器的指针,可以用星号。
*操作符解除引用。
一个保存int的vector的迭代器声明方法为:
vector::iterator it;

vector迭代器是“随机访问迭代器”,可以把vector的迭代器与一个整数相加减,其行为和指针的移动类似。

标签:迭代,STL,笔记,int,3.4,vector,数组
From: https://www.cnblogs.com/youse-qingfeng/p/18051217

相关文章

  • 【C++ STL容器set 】std::set 的全方位解析
    装载自知乎(虽然有AI辅助操作,但是确实写得好好):【C++STL容器set】std::set的全方位解析-知乎(zhihu.com)<imgsrc="https://pic3.zhimg.com/v2-cc8068b8931c7f65e9a89717e2ab404e_b.jpg"data-size="normal"data-rawwidth="1024"data-rawheight="1024......
  • vue3笔记3watch监视的几种变化
    <template> <divclass="about">  <p>情况一,监事ref的值</p>  <h1>求和{{sum}}</h1>  <button@click="changeSum">++++</button> </div></template><scriptlang="ts"......
  • Living-Dream 系列笔记 第28期
    本期讲解了进制转换。T1考验代码能力的好题。首先需要判断输入的坐标是RXCY型还是Excel型:直接扫一遍字符串,若存在一个字母前面是数字,则说明是RXCY型,否则是Excel型。这一部分的代码:boolcheck(strings){ for(inti=0;s[i];i++) if(isupper(s[i])&&isdigit(s[i......
  • Living-Dream 系列笔记 第26期
    ProblemT1见题解。T2/*思路:枚举每一头牛说的话,尝试将Bessie置于pi处,再枚举其他牛说的话,检验不合法的数量,取max即为答案。*/#include<bits/stdc++.h>usingnamespacestd;intn,ans=1e9;structnode{charop;intp;}a[1031];intmain(){cin>>n;......
  • Living-Dream 系列笔记 第25期
    ProblemT1/*思路:对于操作1,直接+=拼接即可;对于操作2,直接令s=s.substr(a,b)即可;对于操作3,直接令s=s.insert(a,t)即可;对于操作4,直接s.find(str)即可,注意特判-1。*/#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;intq;strings;signedmain(){......
  • Living-Dream 系列笔记 第23期
    ProblemT1/*思路:我们可以忽略两人碰到后转向的过程,直接视为两人彼此穿过了对方,这样算距离是不变的,时间也是不变的,所以合法。通过上述分析,那么最小时间即为对于每一个士兵往左/右走的时间取min再取max,最大时间反之亦然。*/#include<bits/stdc++.h>usingnamespacestd;......
  • Living-Dream 系列笔记 第24期
    ProblemT1/*思路:暴力枚举所有的和,用桶标记每个和出现的次数,找最大值且编号最小即可。*/#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;ints1,s2,s3;intsum=-1e9,ans;intmp[131];signedmain(){ ios::sync_with_stdio(0); cin>>s1>>s2>>s3;......
  • Living-Dream 系列笔记 第21期
    ProblemT1/*思路:枚举二元组(i,j),依次检验k次训练课,若i的位置总是>j或<j,则将答案累加。*/#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;intk,n,ans;inta[31][31];signedmain(){ ios::sync_with_stdio(0); cin>>k>>n; for(inti=1;i<=......
  • Living-Dream 系列笔记 第22期
    ProblemT1/*思路:因为题目要求最大水量,所以K次操作需要都用上,并且由于每次都是将x倒入x+1中,所以K次操作之后的最大水量应当是x~x+k+1之和;于是问题就转变成了求一段长度为k+1的连续子段的和的最大值,因此维护一个前缀和即可。*/#include<bits/stdc++.h>usingnamespacestd......
  • Living-Dream 系列笔记 第19期
    ProblemT1/*思路:对于每一对L,R,标记[L,R)(注意左闭右开!),并且求出最小的L(minl)和最大的R-1(maxr);循环maxl~maxr,若被标记则最长连续挤奶时间+1,最长无人挤奶时间=0;否则最长连续挤奶时间=0,最长无人挤奶时间+1,同时更新最大值。*/#include<bits/stdc++.h>usingnamespacestd;intn......