初入水:vector
---恢复内容开始---Vector 是一个类模板。不是一种数据类型。 Vector<int>是一种数据类型
类的作用,是一种顺序容器,支持随机访问,可动态分配空间(扩充:销毁旧内存,更新迭代器),线性的数据结构
《《《《 扩充:》》》》
vector容器类型
vector容器是一个模板类,可以存放任何类型的对象(但必须是同一类对象)。vector对象可以在运行时高效地添加元素,并且vector中元素是连续存储的。
1.对象的操作:
1.push_back 在数组的最后添加一个数据
2.pop_back 去掉数组的最后一个数据
3.at 得到编号位置的数据
4.begin 得到数组头的指针(用于迭代器)
5.end 得到数组的最后一个单元+1的指针 (指向末端元素的下一个,不存在的元素)
6.front 得到数组头的引用
7.back 得到数组的最后一个单元的引用
8.max_size 得到vector最大可以是多大
9.capacity 当前vector分配的大小
10.size 当前使用数据的大小(返回v中元素的个数,v.size())
11.resize 改变当前使用数据的大小,如果它比当前使用的大,者填充默认值
12.reserve 改变当前vecotr所分配空间的大小
13.erase 删除指针指向的数据项
14.clear 清空当前的vector
15.rbegin 将vector反转后的开始指针返回(其实就是原来的end-1)
16.rend 将vector反转构的结束指针返回(其实就是原来的begin-1)
17.empty 判断vector是否为空 (v.empty())
18.swap 与另一个vector交换数据
2.使用:
a:数组习惯使用 (已知大小,索引元素)
oo: vector<int>v(10);类似定义数组,可用v[i]来访问
oo:vector<int>v(10,-1);定义了v,包含10个int型初始值为-1
oo: vector<int>v(a,a+6);int a{1,2,3,4,5,6,7};将a中的6个元素拷贝到v中
- vector<string>s;//vector可被另一个vector初始化,也可赋值给另一个vector
- void init_and_assigh()
- {
- vector<string>names(s);//另一个vector初始化
- s=names;//拷贝
- }
b:STL习惯用法(定义空vector,插入元素,使用迭代器)
//两种方法数据的存入和输出
#include<cstdio>
#include<vector>
#include<iostream>
using namespace std;
int main()
{
int i=;
vector<int>v;
for(i=;i<;i++)
{
v.push_back(i);
}
/****************
for(i=0;i<v.size();i++)
{
cout<<v[i]<<" ";
}
cout<<endl;
*******************/
vector<int>::iterator iter;
for(iter=v.begin();iter!=v.end();iter++)
{
cout<<*iter<<endl;
}
return ;
}//两种方法数据的存入输出
//对二维的定义
#include<cstdio>
#include<vector>
#include<iostream>
using namespace std;
int main()
{
int i=;
vector<int>v;
for(i=;i<;i++)
{
v.push_back(i);
}
/* for(i=0;i<v.size();i++)
{
cout<<v[i]<<" ";
}
cout<<endl;*/
vector<int>::iterator iter;
for(iter=v.begin();iter!=v.end();iter++)
{
cout<<*iter<<endl;
}
return ;
}
#include<stdio.h>
#include<vector>
#include<iostream>
using namespace std;
int main()
{
int i=,j=;
vector<vector<int> >Array;
vector<int>line;
for(j=;j<;j++)
{
Array.push_back(line);//初始化,存入元素
for(i=;i<;i++)
{
Array[j].push_back(i);
}
}
for(j=;j<;j++)
{
for(i=;i<Array[j].size();i++)
{
cout<<Array[j][i]<<" ";
}
cout<<endl;
}
return ;
}
初学鄙陋,只看到了皮毛。
---恢复内容结束---
初入水:vector的更多相关文章
- C++ 初读vector
vector 向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container).跟任意其它类型容器一样,它能够存放各种类型的对象. Character 高效 C++标准要 ...
- 数据结构《21》----2014 WAP 初试题----Immutable queue
2014 WAP初试题----实现一个不可变的队列: 看似很简单..实则,不同的版本效率的差距可能是巨大的..甚至难以想象.. 之前用STL库的queue进行了对比,差别非常大.. 用上一篇文章的im ...
- 标准库类型vector
标准库类型vector表示对象的集合,其中所有对象的类型都相同.集合中的每个对象都有一个与之对应的索引,索引用于访问对象.因为vector“容纳着”其他对象,所以它被称为容器. 要想使用vector, ...
- 平衡树初阶——AVL平衡二叉查找树+三大平衡树(Treap + Splay + SBT)模板【超详解】
平衡树初阶——AVL平衡二叉查找树 一.什么是二叉树 1. 什么是树. 计算机科学里面的树本质是一个树状图.树首先是一个有向无环图,由根节点指向子结点.但是不严格的说,我们也研究无向树.所谓无向树就是 ...
- C++模板之Vector与STL初探
STL源码初步接触 STL = Standard Template Library,直译过来是:标准模板库,是惠普实验室开发的一系列软件的统称.从根本上说,STL是一些"容器"的集 ...
- SuperMap iClient for JavaScript初入
SuperMap iClient for JavaScript初入 介绍SuperMap for Js的简单使用. 推荐先看下这篇文档:SuperMap iClient for JavaScript ...
- C++标准模板库(STL)之Vector
在C中,有很多东西需要自己实现.C++提供了标准模板库(Standard Template Libray,STL),其中封装了很多容器,不需要费力去实现它们的细节而直接调用函数来实现功能. 具体容器链 ...
- C++学习3--编程基础(vector、string、三种传参)
知识点学习 Vector容器 vector是C++标准程序库中的一个类,其定义于头文件中,与其他STL组件一样,ventor属于STD名称空间: ventor是C++标准程序库里最基本的容器,设计之初 ...
- vector中删除的注意事项
erase的函数原型有两种形式: iterator erase(iterator position); iterator erase(iterator first, iterator last); 例 ...
随机推荐
- bzoj 1500 维修数列
splay乱搞. 调了两个多小时...这辈子再也不想写splay了... 维护左边最大连续和右边最大连续,维护两个标记,无脑push_down.push_up就行了. 注意最大连续和至少要包含一个数. ...
- Python字符串输入输出简述
字符串输入 Python用到的输入一般有两种方式,input() 和 raw_input() ,区别是,前者只能输入数字,后者输入的是字符串,使用如下: In [226]: help(input) H ...
- Python学习总结 03 Plotly 学习总结
一 Plotly 简介 Plotly是另一个免费进行数据分析和绘制图表的APP,建立在d3.js上. Plotly图可下载为SVG,EPS或PNG格式,并简单地导入到Illustrator或者Phot ...
- Python 类(一)
这一篇让先抽象的了解下类与实例 一类的定义 从具体的程序设计观点来看: 类是一种数据结构.我们可以使用类来定义包含数据值和行为特性的对象(类对象). 类是封装逻辑和数据的另一种形式. 面向对象设计观点 ...
- python中使用heapq查看最大与最小的N个元素列表
怎么从一个集合中获取最大或最小的N个元素列表? heapq模块有两个函数:nlargest() 和 nsmallest() 可以完美解决这个问题. In [39]: import heapq In [ ...
- XPath 学习二: 语法
XPath 使用路径表达式来选取 XML 文档中的节点或节点集.节点是通过沿着路径 (path) 或者步 (steps) 来选取的. 下面列出了最有用的路径表达式: 表达式 描述 nodename 选 ...
- js cookie
cookie:cookis:储存数据,当用户访问了某个网站的时候,我们就可以通过cookie来向访问者电脑上储存数据1)不同浏览器的存放cookie位置不一样,也是不能通用的2)cookie的存储是以 ...
- python api
import requests #查询手机好归属地API def phone(tel): url = 'http://op.juhe.cn/onebox/phone/query' appkey = ' ...
- 12月15日smarty模板基本语法
smarty基本语法: 1.注释:<{* this is a comment *}>,注意左右分隔符的写法,要和自己定义的一致. <{* I am a Smarty comment, ...
- js正则表达式的一些研究,截取两个字符串中间的字符串
一个最常用的场景 截取两个字符串中间的字符串 var str = "iid0000ffr"; var substr = str.match(/id(\S*)ff/); ...