ACM/ICPC竞赛

04篇 ACM/ICPC竞赛之STL--vector


STL<vector>头文件中定义了vector(向量容器模板类),vector容器以连续数组的方式存储元素序列,可以将vector看作是以顺序结构实现的线性表。
当我们在程序中需要使用动态数组时,vector将会是理想的选择,vector可以在使用过程中动态地增长存储空间。

vector模板类需要两个模板参数,第一个参数是存储元素的数据类型,第二个参数是存储分配器的类型,其中第二个参数是可选的,如果不给出第二个参数,
将使用默认的分配器。

下面给出几个常用的定义vector向量对象的方法示例:

vector<int> s; 
定义一个空的vector对象,存储的是int类型的元素。

vector<int> s(n); 
定义一个含有nint元素的vector对象。

vector<int> s(first, last); 
定义一个vector对象,并从由迭代器firstlast定义的序列[first, last)中复制初值。

vector的基本操作有:

s
直接以下标方式访问容器中的元素。

s.front()
返回首元素。

s.back()
返回尾元素。

s.push_back(x)
向表尾插入元素x

s.size()
返回表长。

s.empty()
当表空时,返回真,否则返回假。

s.pop_back()
删除表尾元素。

s.begin()
返回指向首元素的随机存取迭代器。

s.end()
返回指向尾元素的下一个位置的随机存取迭代器。

s.insert(it, x)
向迭代器it指向的元素前插入新元素val

s.insert(it, n, x)
向迭代器it指向的元素前插入nx

s.insert(it, first, last)
将由迭代器firstlast所指定的序列[first, last)插入到迭代器it指向的元素前面。

s.erase(it)
删除由迭代器it所指向的元素。

s.erase(first, last)
删除由迭代器firstlast所指定的序列[first, last)

s.reserve(n)
预分配缓冲空间,使存储空间至少可容纳n个元素。

s.resize(n)
改变序列的长度,超出的元素将会被删除,如果序列需要扩展(原空间小于n),元素默认值将填满扩展出的空间。

s.resize(n, val)
改变序列的长度,超出的元素将会被删除,如果序列需要扩展(原空间小于n),将用val填满扩展出的空间。

s.clear()
删除容器中的所有的元素。

s.swap(v)
s与另一个vector对象v进行交换。

s.assign(first, last)
将序列替换成由迭代器firstlast所指定的序列[first, last)[first, last)不能是原序列中的一部分。

要注意的是,resize操作和clear操作都是对表的有效元素进行的操作,但并不一定会改变缓冲空间的大小。

另外,vector还有其他一些操作如反转、取反等,不再一下列举。

vector上还定义了序列之间的比较操作运算符(>, <, >=, <=, ==, !=),可以按照字典序比较两个序列。

还是来看一些示例代码。输入个数不定的一组整数,再将这组整数按倒序输出,如下所示:

 1 #include <iostream>
 2 #include <vector>
 3 using namespace std;
 4 main()
 5 {
 6 vector<int> L;
 7 int x;
 8 while (cin>>x) L.push_back(x);
 9 for (int i=L.size()-1; i>=0; i--) cout << L << " ";
10 cout << endl;
11 return 1;
12 }

 

 

未完待续、、、

 

 

 

 

转载于:https://www.cnblogs.com/jeff-wgc/p/4480218.html

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

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

相关文章

阈值分割与区域分割

本文主要包括以下内容 阈值分割技术基于区域的图像分割技术本章的典型案例 基于LoG和Canny算子的精确边缘检测基于Hough变换的直线检测图像的四叉树分解 阈值分割 我们曾在3.5节学习过灰度阈值变换的相关知识&#xff0c; 利用灰度阈值变换分割图像就称为阈值分割&#xf…

边缘计算芯片格局分析

来源&#xff1a;半导体行业观察 近日&#xff0c;华为和比特大陆纷纷发布了针对边缘计算的新芯片产品。华为的Ascend系列采用达芬奇架构&#xff0c;其中Ascend 310功耗8W算力8TOPS正是针对边缘计算市场。而之后比特大陆发布的BM1682和BM1880也是针对边缘计算市场&#xff0c;…

基于PCA的人脸特征抽取

我们将应用PCA技术来抽取人脸特征。一幅人脸照片往往由比较多的像素构成&#xff0c;如果以每个像素作为1维特征&#xff0c;将得到一个维数非常高的特征向量&#xff0c; 计算将十分困难&#xff1b;而且这些像素之间通常具有相关性。这样&#xff0c;利用PCA技术在降低维数的…

[置顶] 删除:大数据取舍之道读书笔记

1 对于人类而言&#xff0c;遗忘一直是常态&#xff0c;而记忆才是例外。然而&#xff0c;由于数字技术与全球网络的发展&#xff0c;这种平衡已经被打破了。如今&#xff0c;往事正像刺青一样刻在我们的数字皮肤上&#xff0c;遗忘已经变成了例外&#xff0c;而记忆却成了常态…

超市的100年发展史:好日子终结 亚马逊无人店是趋势

来源&#xff1a;网易智能 电商巨头亚马逊已经在旧金山、西雅图和芝加哥等地开设了多家无人便利店Amazon Go&#xff0c;它们向顾客展现了无缝购物体验这种未来购物模式&#xff0c;它依赖于高科技追踪技术&#xff0c;消费者只需将商品从货架上取下&#xff0c;并放入帆布手提…

图像识别初步

本文主要包括以下内容 模式与模式识别的基本概念过度拟合最小距离分类器基于相关的模板匹配本章的典型案例分析 基于最小距离分类器的鸾尾属植物分类基于相关技术的图像模式匹配 模式识别概述 模式识别(Pattern Recognition)是人类的一项基本智能&#xff0c;在日常生活中…

下一个人才大缺口:量子计算研究人员

来源&#xff1a;36Kr初创公司Zapata Computing的创始人兼首席执行官克里斯托弗萨瓦&#xff08;Christopher Savoie&#xff09;表示&#xff0c;他向三位专攻量子计算的外国科学家提供了就业机会&#xff0c;他在等他们的工作签证获得批准。但几个月过去了&#xff0c;这家位…

LIBCMTD.lib与libcpmtd冲突的解决方法。

error: 1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2YAPAXIZ) 已经在 LIBCMTD.lib(new.obj) 中定义 1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??…

基于PCA和SVM的人脸识别

svm推广到多类情况 一对多的最大响应策略(one against all) 假设有A 、B、C.. D四类样本需要划分。在抽取训练集的时候&#xff0c;分别按照如下4种方式划分。 A. 所对应的样本特征向量作为正集&#xff08;类标签为1), B、C、D所对应的样本特征向量作为负集&#xff08;类…

为何协作机器人能够兴起?“协作机器人-激烈的市场谁能杀出重围”

来源&#xff1a;机器人大讲堂作者&#xff1a;包文涛&#xff0c;哈尔滨工业大学机器人研究所工学硕士&#xff0c;在机器人和工业自动化领域有超过10年的专业经验。曾任职于ABB集团&#xff0c;先后在新加坡、美国、加拿大等地工作&#xff0c;在产品管理、技术方案、项目工程…

5款新颖的ReSharper插件

ReSharper是著名的代码生成工具。自ReSharper 8.0版本发布以来&#xff0c;新的扩展管理器、模板设置、分发安装等功能改革使得对插件的要求变高。接下来小编整理了5款新颖插件。 JetBox 当开发者工作在不同的机器设备时&#xff0c;这个插件可以利用DropBox同步ReSharper设置。…

机器学习实战之K近邻算法

k近邻算法概述 简单地说,K近邻算法采用测量不同特征值之间的距离方法进行分类。 优 点 :精度高、对异常值不敏感、无数据输入假定。 缺点:计算复杂度高、空间复杂度高。 适用数据范围:数值型和标称型。 它的工作原理是:存在一个样本数 据集合,也称作训练样本集,并且样本集…

神经网络的叛离:32年前从心理学与生理学分离的瞬间

来源&#xff1a;大数据文摘编译&#xff1a;Andy反向传播算法隶属于深度学习&#xff0c;它在解决模型优化问题的方面有着重要的地位。这一算法由被誉为深度学习之父的Geoffrey Hinton提出。1986年&#xff0c;他发表了名为Learning representations by back-propagating erro…

希尔排序-插入改进

引自&#xff1a;http://hi.baidu.com/gsgaoshuang/item/17a8ed3c24d9b1ba134b14c2 学习算法的一个好网站 http://student.zjzk.cn/course_ware/data_structure/web/paixu/paixu8.2.2.1.htm 希尔排序&#xff08;Shell Sort&#xff09;又称为缩小增量排序&#xff0c;输入插入…

机器学习实战之决策树

你是否玩过二十个问题的游戏,游戏的规则很简单:参与游戏的一方在脑海里想某个事物,其他参与者向他提问题,只允许提20个问题,问题的答案也只能用对或错回答。问问题的人通过 推断分解,逐步缩小待猜测事物的范围。决策树的工作原理与20个问题类似,用户输人一系列数 据,然后给出游…

细嚼慢咽C++primer(4)——类(1):构造函数,类型别名

1 最简单地说&#xff0c;类即使定义了一个新的类型和一个新的作用域。 2 基础 1 构造函数 构造函数一般应使用一个构造函数初始化列表&#xff0c;来初始化对象的数据成员。 Sales_item(): units_sold(0), revenue(0.0) {}; 2 成员函数 在类内部定义的函数默认为inline. …

2018全球硬科技创新暨“一带一路”创新合作大会,这些硬科技都要来!

来源&#xff1a;新华社近年来&#xff0c;多个省市陆续开始了一场科技标签秀&#xff0c;以深圳等为代表的“人工智能”、以上海为代表的“金融科技”&#xff0c;以贵州为代表的“大数据”等纷纷亮相&#xff0c;而伴随着“一带一路”新丝路的战略实施&#xff0c;西安&#…

吴恩达:人工智能寒冬不会到来,但我们太乐观了

来源&#xff1a;量子位AI Winter Is Coming&#xff1f;人工智能领域的各路专家学者曾经为这个话题吵翻了天。最近&#xff0c;这个话题又有更新了。人工智能寒冬论的作者Filip Piekniewski在博客上发文&#xff0c;给自己提出的观点增加了新的证据。非常巧的是&#xff0c;吴…

SQL数据库误删除表数据恢复 SQL数据库truncate表数据恢复

SQL数据库误删除表数据恢复 SQL数据库truncate表数据恢复 误删除表需要恢复该表&#xff0c;要注意几个问题&#xff0c; 第一 删除表后是否新建表了 是否插入数据了。 第二 删除表后是否立即关闭SQL服务了/ 第三 数据库是否是完整模式 我们先来了解下 删除表做了那些操作&…

自动驾驶中常用的四类机器学习算法

来源&#xff1a;智车科技机器学习算法已经被广泛应用于自动驾驶各种解决方案&#xff0c;电控单元中的传感器数据处理大大提高了机器学习的利用率&#xff0c;也有一些潜在的应用&#xff0c;比如利用不同外部和内部的传感器的数据融合(如激光雷达、雷达、摄像头或物联网)&…