STL-vector容器-各种操作
发布日期:2021-11-20 10:17:55 浏览次数:9 分类:技术文章

本文共 2097 字,大约阅读时间需要 6 分钟。

1.对vector容器的容量和大小操作

函数原型:

empty():判断容器是否为空
capacity():容器的容量
size():返回容器中元素的个数

resize(int num):重新指定容器的长度为num,若容器变长,则以默认值填充新位置,若变短,则末尾超出容器长度的元素被删除

resize(int num, elem):重新指定容器的长度为num,若容器变长,则以elem值填充新位置,若变短,则末尾超出容器长度的元素被删除

2.插入和删除操作:

函数原型:
push_back():尾部插入元素elem

vector
arr;arr.push_back(1);arr.push_back(2);arr.push_back(3);

这样插入元素后容器arr内部元素分别是1,2,3。

pop_back():删除最后一个元素

insert(const_iterator pos,ele):迭代器指向位置pos插入元素ele
insert(const_iterator pos,int count,ele):迭代器指向位置pos插入count个元素ele
erase(const_iterator pos,ele):删除迭代器指向的元素
erase(const_iterator start,const_iterator end):删除迭代器从start到end之间的元素
clear():删除容器中所有元素

3.数据存取操作

at(int idx):返回索引idx所指的数据
operator[]:返回索引idx所指的数据
front():返回容器中第一个数据元素
back():返回容器中最后一个数据元素

#include "pch.h"#include 
#include
#include
#include
using namespace std;void printvector(vector
&v) {
for (vector
::iterator it = v.begin(); it != v.end(); it++) { cout << *it << ""; } cout << endl;}void test01() { vector
v1; for (int i = 0; i < 10; i++) { v1.push_back(i); } printvector(v1); //对vector容器的容量和大小操作 if (v1.empty()) { //为真,则为空 cout << "v1为空" << endl; } else { cout << "v1不为空" << endl; cout << "v1的容量为:" << v1.capacity() << endl;//13,容量大于等于大小 cout << "v1的大小" << v1.size() << endl;//10 } v1.resize(15);//如果重新指定的比原来的长了,默认用0填充新的位置, v1.resize(15, 100);//如果重新指定的比原来的长了,用100填充新的位置 v1.resize(5);//如果重新指定的比原来的短了,超出部分会删除掉 //插入和删除操作: //尾插 vector
v2; v2.push_back(10); v2.push_back(20); v2.push_back(30); v2.push_back(40); v2.push_back(50); printvector(v2); //尾删 v2.pop_back(); printvector(v2); //插入 v1.insert(v1.begin(), 100); printvector(v2); v1.insert(v1.begin(), 2,100);//利用重载 //删除 参数是迭代器 v1.erase(v1.begin()); //数据存取操作 vector
v3; for (int i = 0; i < 10; i++) { v3.push_back(i); } //利用[]方式访问数组中元素 for (int i = 0; i < v3.size(); i++) { cout << v1[i] << endl; } //利用at方式访问元素 for (int i = 0; i < v3.size(); i++) { cout << v1.at(i) << endl; } //获取第一个元素 cout << v1.front() << endl; //获取最后一个元素 cout << v1.back() << endl;}int main(){ }

转载地址:https://blog.csdn.net/weixin_43223362/article/details/103112833 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:STL-vector容器-互换容器和预留空间
下一篇:STL-vector容器-构造函数

发表评论

最新留言

不错!
[***.144.177.141]2024年04月20日 21时12分38秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

【C++】攻克哈希表(unordered_map) 2019-04-27
转:【答学员问】- 该如何根据岗位学习相关技能 2019-04-27
转:【答学员问】有什么经验教训,是你在面试很多次之后才知道的? 2019-04-27
消息队列:解耦、异步、削峰,现有MQ对比以及新手入门该如何选择MQ? 2019-04-27
【奇技淫巧】-- 三角形最小路径和 2019-04-27
【小技巧】argc和argv的用法 2019-04-27
学不下去了怎么办? 2019-04-27
二叉树的前中后序遍历(迭代法)(带动画) 2019-04-27
【小技巧】【XShell】【Xftp】Windows桌面与Linux虚拟机互传文件 2019-04-27
【redis入门】Centos下安装redis 2019-04-27
【redis入门】redis安装后相关知识串讲 2019-04-27
【redis】来吧,展示一下redis 发布-订阅模式 2019-04-27
讲通C/C++预编译/条件编译指令 #ifdef,#ifndef,#endif,#define,… 2019-04-27
【redis6.0.6】redis源码慢慢学,慢慢看 -- 第二天:空间配置(zmalloc) 2019-04-27
当下热点词再学:redis缓存预热、更新、降级,限流 2019-04-27
【redis6.0.6】redis源码慢慢学,慢慢看 -- 第五天:adlist 2019-04-27
别抖,OK? 操作系统抖动现象、网络抖动与延迟、函数抖动之防抖与节流,串讲 2019-04-27
第六天:网络处理(anet部分)-- redis源码慢慢学,慢慢看【redis6.0.6】 2019-04-27
通过域名获取主机IP -- struct addrinfo 2019-04-27
【C++】算法集锦(8):从两数和问题拓展到一百数和问题 2019-04-27