[C++STL]vector容器用法介绍

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

代码如下:

#include <iostream>
#include <string>
#include <vector>
using namespace std;void printVector(vector<int >&v)
{for (vector<int>::iterator it = v.begin(); it != v.end(); it++){cout << *it << " ";}cout << endl;
}void test01()
{vector<int>v1;for (int i = 0; i < 10; i++){v1.push_back(i);}printVector(v1);vector<int>v2(v1.begin(), v1.end());printVector(v2);vector<int>v3(10, 100);printVector(v3);vector<int>v4(v3);printVector(v4);
}int main()
{test01();return 0;
}

测试结果:

总结:
vector的多种构造方式没有可比性,灵活使用即可。

在这里插入图片描述

代码如下:

#include <iostream>
#include <string>
#include <vector>
using namespace std;void printVector(vector<int >&v)
{for (vector<int>::iterator it = v.begin(); it != v.end(); it++){cout << *it << " ";}cout << endl;
}void test01()
{vector<int>v1;for (int i = 0; i < 10; i++){v1.push_back(i);}printVector(v1);vector<int>v2;v2 = v1;printVector(v2);vector<int>v3;v3.assign(v1.begin(), v1.end());printVector(v3);vector<int>v4;v4.assign(10, 100);printVector(v4);
}int main()
{test01();return 0;
}

测试结果:在这里插入图片描述

总结:
vector赋值方式比较简单,使用operator=,或者assign都可以。

在这里插入图片描述

代码如下:

#include <iostream>
#include <string>
#include <vector>
using namespace std;void printVector(vector<int >&v)
{for (vector<int>::iterator it = v.begin(); it != v.end(); it++){cout << *it << " ";}cout << endl;
}void test01()
{vector<int> v1;for (int i = 0; i < 10; i++){v1.push_back(i);}printVector(v1);if (v1.empty()){cout << "v1为空" << endl;}else{cout << "v1不为空" << endl;cout << "v1 capacity = " << v1.capacity() << endl;cout << "v1 size = " << v1.size() << endl;}v1.resize(15, 10);printVector(v1);v1.resize(5);printVector(v1);
}int main()
{test01();return 0;
}

测试结果:

总结:

在这里插入图片描述

在这里插入图片描述

代码如下:

#include <iostream>
#include <string>
#include <vector>
using namespace std;void printVector(vector<int >&v)
{for (vector<int>::iterator it = v.begin(); it != v.end(); it++){cout << *it << " ";}cout << endl;
}void test01()
{vector<int>v1;v1.push_back(10);v1.push_back(20);v1.push_back(30);v1.push_back(40);v1.push_back(50);printVector(v1);v1.pop_back();printVector(v1);v1.insert(v1.begin(), 100);printVector(v1);v1.insert(v1.begin(), 2, 1000);printVector(v1);v1.erase(v1.begin());printVector(v1);//清空v1.erase(v1.begin(), v1.end());v1.clear();printVector(v1);}int main()
{test01();return 0;
}

测试结果:
在这里插入图片描述

总结:

在这里插入图片描述
在这里插入图片描述

代码如下:

#include <iostream>
#include <string>
#include <vector>
using namespace std;void printVector(vector<int >&v)
{for (vector<int>::iterator it = v.begin(); it != v.end(); it++){cout << *it << " ";}cout << endl;
}void test01()
{vector<int>v1;for (int i = 0; i < 10; i++){v1.push_back(i);}for (int i = 0; i < v1.size(); i++){cout << v1[i] << " ";}cout << endl;for (int i = 0; i < v1.size(); i++){cout << v1.at(i) << " ";}cout << endl;cout << "v1 front elem = " << v1.front() << endl;cout << "v1 final elem = " << v1.back() << endl;}int main()
{test01();return 0;
}

测试结果:
在这里插入图片描述

总结:

在这里插入图片描述

在这里插入图片描述

代码如下:

#include <iostream>
#include <string>
#include <vector>
using namespace std;void printVector(vector<int >&v)
{for (vector<int>::iterator it = v.begin(); it != v.end(); it++){cout << *it << " ";}cout << endl;
}void test01()
{vector<int>v1;for (int i = 0; i < 10; i++){v1.push_back(i);}printVector(v1);vector<int>v2;for (int i = 10; i > 0; i--){v2.push_back(i);}printVector(v2);//互换容器cout << "互换后" << endl;v1.swap(v2);printVector(v1);printVector(v2);}void test02()
{vector<int>v;for (int i = 0; i < 100000; i++){v.push_back(i);}cout << "v capacity = " << v.capacity() << endl;cout << "v size = " << v.size() << endl;v.resize(3);cout << "v capacity = " << v.capacity() << endl;cout << "v size = " << v.size() << endl;//收缩内存vector<int>(v).swap(v);cout << "v capacity = " << v.capacity() << endl;cout << "v size = " << v.size() << endl;}int main()
{test01();test02();return 0;
}

测试结果:
在这里插入图片描述

总结:
在这里插入图片描述

在这里插入图片描述

代码如下:

#include <iostream>
#include <string>
#include <vector>
using namespace std;void printVector(vector<int >&v)
{for (vector<int>::iterator it = v.begin(); it != v.end(); it++){cout << *it << " ";}cout << endl;
}void test01()
{vector<int>v;/*v.reserve(100000);*/int num = 0;int *p = nullptr;for (int i = 0; i < 100000; i++){v.push_back(i);if (p != &v[0]){p = &v[0];num++;}}cout << "num = " << num << endl;}int main()
{test01();return 0;
}

测试结果:
在这里插入图片描述

代码如下:

#include <iostream>
#include <string>
#include <vector>
using namespace std;void printVector(vector<int >&v)
{for (vector<int>::iterator it = v.begin(); it != v.end(); it++){cout << *it << " ";}cout << endl;
}void test01()
{vector<int>v;v.reserve(100000);int num = 0;int *p = nullptr;for (int i = 0; i < 100000; i++){v.push_back(i);if (p != &v[0]){p = &v[0];num++;}}cout << "num = " << num << endl;}int main()
{test01();return 0;
}

测试结果:
在这里插入图片描述

总结:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/310059.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

跟沈剑学习如何带领技术团队作战

【学习笔记】| 作者/Edison Zhou这是恰童鞋骚年的第229篇原创文章小编Edison在阿里云开发者社区上看到了58集团技术VP大佬沈剑关于如何带领技术团队作战的一个直播分享&#xff0c;因此在站地铁的上下班路上学习完了整个录播视频&#xff0c;整理总结下此文作为学习笔记&#x…

拓展欧几里得小结(初级理解)

什么是拓展欧几里得&#xff1f;简单的说&#xff0c;就是求关于x,y的方程 ax by gcd(a,b) 的所有整数解 现在我们令g gcd(a,b)则方程变成了ax by g 假如我们现在知道了关于这个方程的一个特解x0, y0&#xff0c;我们就可以用一种方法求出所有的整数解。 说的比较模糊&am…

用java做一个模拟彩票程序_JAVA模拟----- 彩票机子-----抽奖过程的实例化

/*时间&#xff1a;2012-10-05作者&#xff1a;烟大阳仔程序要求&#xff1a;模拟彩票抽奖机的功能编写一个程序,实现随即输出六个号码程序解释&#xff1a;该段程序没有传递参数*/class Day1005_Caipiao{public static void main(String[] args){System.out.println("估计…

[C++STL]deque容器用法介绍

代码如下&#xff1a; #include <iostream> #include <string> #include <deque> using namespace std;void printDeque(const deque<int>& d) {for (deque<int>::const_iterator it d.begin(); it ! d.end(); it){cout << *it <…

“我工作八年,换了四家小公司,今后的职业生涯该怎么走?”

去年&#xff0c;我曾在GIAC大会上分享过一个有关程序员职场变化和转型的话题。在分享结束之后&#xff0c;有一位小伙伴拦在大门口&#xff0c;问了我一个问题&#xff1a;"王老师&#xff0c;虽然你分享的内容很务实&#xff0c;落地性也很强&#xff0c;但我觉得跟自己…

最长回文 HDU - 3068(求最长回文串的长度【马拉车算法Manacher】)

马拉车算法 Manacher‘s Algorithm 是用来查找一个字符串的最长回文子串的线性方法&#xff0c;由一个叫 Manacher 的人在 1975 年发明的&#xff0c;这个方法的最大贡献是在于将时间复杂度提升到了线性 dp[i] ma > i ? min(dp[2 * mod - i], ma - i) : 1; 可以这么说&…

java中的循环结构_Java中的循环结构进阶

循环结构进阶学习本章用到的单词triangle:三角形circle:圆形diamond:钻石password:密码row:行.排列二重循环结构简单的说:二重循环就是一个循环体内又包含另一个完整的循环结构.while循环结构,do-while循环结构,for循环结构三种循环结是可以相互嵌套的语法://while与while循环嵌…

.NET Core + Kubernetes:Deployment

在上篇文章 .NET Core Kubernetes&#xff1a;Pod 中&#xff0c;主要介绍了 Pod 的相关内容&#xff0c; 基于 Pod 为单位能更加合理进行容器编排&#xff0c;然而 Pod 只是个启动了一个或一组容器的资源类型&#xff0c;在实际应用中&#xff0c;我们也需要 Pod 能实现动态扩…

java dos平台压缩_Dos命令 压缩 解压缩

你的机器 有RAR吗> 装个rar里面有个Rar.exe文件用法: rar - - a 添加文件到压缩文件c 添加压缩文件注释cf 添加文件注释cw 写入压缩文件注释…

Oulipo HDU - 1686(哈希或KMP)匹配字符串

题意&#xff1a;字符串匹配&#xff1a;寻找字符串S中&#xff0c;字符串T出现的次数 思路&#xff1a;KMP或哈希 The French author Georges Perec (1936–1982) once wrote a book, La disparition, without the letter e. He was a member of the Oulipo group. A quote …

我整理了100G的.Net学习资料,速来领取!

听说免费送课会上瘾&#xff1f;不分享点干货给大家学习&#xff0c;完全无法衬托本号主的好人特质啊&#xff01;正所谓白嫖一时爽&#xff0c;一直白嫖一直爽&#xff01;举起你滴双手&#xff0c;擦亮你的眼睛&#xff01;今天我要丢个硬核干货&#xff01;一次性怒砸几百个…

maven mysql的jdbctemplate_JDBC、JDBCTemplate、MyBatis、Hiberante 比较与分析

JDBC (Java Data Base Connection,java数据库连接)JDBC(Java Data Base Connection,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发…

[C++STL]list容器用法介绍

代码如下: #include <iostream> #include <string> #include <list> using namespace std;void printList(const list<int>&L) {for (list<int>::const_iterator it L.begin(); it ! L.end(); it){cout << *it << " &quo…

C#黔驴技巧之去重(Distinct)

关于C#中默认的Distinct方法在什么情况下才能去重&#xff0c;这个就不用我再多讲&#xff0c;针对集合对象去重默认实现将不再满足&#xff0c;于是乎我们需要自定义实现来解决这个问题&#xff0c;接下来我们详细讲解几种常见去重方案&#xff0c;孰好孰歹自行判之。分组首先…

Almost Union-Find UVA - 11987(并查集的删除操作)

题意&#xff1a;求出每个集合的元素个数&#xff0c;及总和&#xff0c;给出三个操作&#xff1a; 1 将含有a元素和b元素的集合合并&#xff1b;2 将a元素放入含有b元素的集合中&#xff1b;3 输出a元素所在集合的元素个数及总和&#xff1b; 思路&#xff1a;正常并查集&am…

java.sql 拒绝连接_hive jdbc 拒绝连接问题

本帖最后由 willgone 于 2017-06-21 10:56 编辑平台配置在附件中。private static String driverName1 "org.apache.hive.jdbc.HiveDriver";Class.forName(driverName1);String url"jdbc:hive2://192.168.160.241:21076/default";Connection con DriverM…

ASP.NET Core分布式项目实战(oauth2 + oidc 实现 server部分)--学习笔记

任务15&#xff1a;oauth2 oidc 实现 server部分基于之前快速入门的项目&#xff08;MvcCookieAuthSample&#xff09;&#xff1a;ASP.NET Core快速入门&#xff08;第5章&#xff1a;认证与授权&#xff09;--学习笔记ASP.NET Core快速入门&#xff08;第6章&#xff1a;ASP…

[C++STL]set容器用法介绍

代码如下: #include <iostream> #include <set> using namespace std;void printSet(set<int>&s) {for (set<int>::iterator it s.begin(); it ! s.end(); it){cout << *it << " ";}cout << endl; }void test01() {…