vector的用法总结
Reference
Constructors
vector
Constructs a vector of a specific size or with elements of a specific value or with a specific allocator or as a copy of some other vector.
Typedefs
allocator_type
A type that represents the allocator class for the vector object.
const_iterator
A type that provides a random-access iterator that can read a const element in a vector.
const_pointer
A type that provides a pointer to a const element in a vector.
const_reference
A type that provides a reference to a const element stored in a vector for reading and performing const operations.
const_reverse_iterator
A type that provides a random-access iterator that can read any const element in the vector.
difference_type
A type that provides the difference between the addresses of two elements in a vector.
两个元素在vector中的地址差,不是真实的元素地址差
iterator
A type that provides a random-access iterator that can read or modify any element in a vector.
pointer
A type that provides a pointer to an element in a vector.
reference
A type that provides a reference to an element stored in a vector.
reverse_iterator
A type that provides a random-access iterator that can read or modify any element in a reversed vector.
size_type
A type that counts the number of elements in a vector.
value_type
A type that represents the data type stored in a vector.
Member Functions
assign
Erases a vector and copies the specified elements to the empty vector.
清除原有的vector容器,然指定特定的元素到vector
例如:
vector<int>vec;
vec.assign(10,250);擦除原有容器的内容,插入10个值为250的元素
vec1(vec.rbegin,vec,rend);将vec1某个迭代范围内的元素插入到vec1
at
Returns a reference to the element at a specified location in the vector.
例如:
vec.at(3);返回第三个数的引用
back
Returns a reference to the last element of the vector.
如果vector为空,使用导致coredump)
begin
Returns a random-access iterator to the first element in the container.
如果vector为空,begin返回的迭代器与end返回的迭代器相同。
capacity
Returns the number of elements that the vector could contain without allocating more storage.
获取在不重新分配内存的情况下可容纳的元素最大数量
clear
Erases the elements of the vector.
清空整个容器
vec.clear();
empty
Tests if the vector container is empty.
end
Returns a random-access iterator that points just beyond the end of the vector.
返回的迭代器指向vector的“末端元素的下一个”。
通常称为超出末端迭代器(off-the-end iterator),表明它指向了一个不存在的元素。
erase
Removes an element or a range of elements in a vector from specified positions.
可通过迭代器清除某个元素或者某一迭代范围内的元素,返回原元素后一个元素在删除后的vector中的迭代器或者end()。
例如:
vector<int>::iterator iter = ++vec.begin();
vec.erase(iter);
vec.erase(vec.begin(),--vec.end());
front
Returns a reference to the first element in a vector.
如果vector为空,使用导致coredump
get_allocator
Returns an object to the allocator class used by a vector.
insert
Inserts an element or a number of elements into the vector at a specified position.
max_size
Returns the maximum length of the vector.
vector可容纳元素的最大数量,vs08在win64测试最大貌似是1073741823
pop_back
Deletes the element at the end of the vector.
push_back
Add an element to the end of the vector.
调用元素类型的拷贝构造函数以其值为模板初始化新变量,放入到vector的末尾。
rbegin
Returns an iterator to the first element in a reversed vector.
返回反向迭代器,指向vector的最后一个元素
rend
Returns an iterator to the end of a reversed vector.
reserve
Reserves a minimum length of storage for a vector object.
改变当前vector的预留容量,在vs08上测试,如果预留容量小于当前元素个数不会改变,在大于的时候才会改变。
resize
Specifies a new size for a vector.
在vs08上测试,如果当前的元素size大于这个resize值,会从头到尾截断resize大小,后面的元素舍弃,当前size元素小于的话
多出来的新元素都需以元素类型的default构造函数构造完成。
void resize(size_type n, value_type x);
将元素数量改为n,如果vector因此变大了,多出来的元素都是x的副本
size
Returns the number of elements in the vector.
swap
Exchanges the elements of two vectors.
交换两个vec
campare function(非成员函数) 这个时候就要注意元素的比较重载函数了
inline bool operator == (const vector<T> & ls, const vector<T> & rs)
非成员函数,判断两个vector是否相等。首先比较二者的元素个数是否相同;如果个数相同则遍历vector,调用元素的“==”运算符比较是否相同。
inline bool operator == (const vector<T> & ls, const vector<T> & rs)
非成员函数,判断两个vector是否相等。首先比较二者的元素个数是否相同;如果个数相同则遍历vector,调用元素的“==”运算符比较是否相同。
inline bool operator != (const vector<T> & ls, const vector<T> & rs)
非成员函数,判断两个vector是否不等。结果为对“==”运算符的取反。
inline bool operator < (const vector<T> & ls, const vector<T> & rs)
非成员函数,判断前者是否小于后者。遍历vector,返回第一对不满足“==”运算符的元素的“<”比较结果。
inline bool operator > (const vector<T> & ls, const vector<T> & rs)
非成员函数,判断前者是否大于后者。遍历vector,返回第一对不满足“==”运算符的元素的“>”比较结果。
inline bool operator <= (const vector<T> & ls, const vector<T> & rs)
非成员函数,判断前者是否"<="后者。结果为"!(rs < ls)"。
inline bool operator >= (const vector<T> & ls, const vector<T> & rs)
非成员函数,判断前者是否">="后者。结果为"!(ls < rs)"。
Operators
operator[]
Returns a reference to the vector element at a specified position.
vector的用法总结的更多相关文章
- c++中vector的用法详解
c++中vector的用法详解 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间 ...
- STL中的Vector相关用法
STL中的Vector相关用法 标准库vector类型使用需要的头文件:#include <vector>. vector 是一个类模板,不是一种数据类型,vector<int> ...
- C++学习二 vector的用法(使用sort对于vector排序)
一.vector的介绍 vector是C++里面的一个容器,也是我们数学上面理解的向量,有一些比较常见的操作. 二.vector的定义 #include<vector> using nam ...
- STL vector常见用法详解
<算法笔记>中摘取 vector常见用法详解 1. vector的定义 vector<typename> name; //typename可以是任何基本类型,例如int, do ...
- POJ 1230 Pass-Muraille#贪心+vector迭代器用法
(- ̄▽ ̄)-* (注意下面代码中关于iterator的用法,此代码借鉴某大牛) #include<iostream> #include<cstdio> #include< ...
- C++:vector的用法详解
原文地址:http://blog.csdn.net/hancunai0017/article/details/7032383 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于 ...
- STL————vector的用法
一.什么是vector? 向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container).跟任意其它类型容器一样,它能够存放各种类型的对象.可以简单的认为,向量是一个能 ...
- C++序列容器之 vector常见用法总结
一.关于vector 本文默认读者具有一定的c++基础,故大致叙述,但保证代码正确. vector是一个动态的序列容器,相当于一个size可变的数组. 相比于数组,vector会消耗更多的内存以有效的 ...
- C++ STL(二)vector的用法
##### vector的定义 ```#include <iostream>#include <string>#include <vector>using name ...
- vector基本用法
Vector作为STL容器中的一员,使用频率非常高,因此对其基本用法和实用技巧进行记录,便于后期查询使用. 基本用法 #include <iostream> #include <ve ...
随机推荐
- 自定义 Preference Header 布局
1. Preference Header 概述: 对于什么是 Preference Header,以及何时使用 Preference Header,请参考我的另一篇博文: 何时使用 Preferenc ...
- struts2中<s:select/>标签的运用详解
<s:select list="smsTypes" listKey="SmsTypeId" listValue="SmsTypeName&quo ...
- MySQL按照汉字的拼音排序(转)
按照汉字的拼音排序,用的比较多是在人名的排序中,按照姓氏的拼音字母,从A到Z排序: 如果存储姓名的字段采用的是GBK字符集,那就好办了,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字37 ...
- PHP打开PDO_MySQL扩展的配置方法
PHP中的PDO其实是一个很好用的扩展,在一些PHPCMS系统中,开发者大多都有用到,那么如何开启PDO和PDO_MySQL扩展呢?方法同样很简单: 打开php.ini配置文件,找到extension ...
- IIS自定义404错误页显示“系统找不到指定的文件”解决方法
在IIS站点属性里面设置了自定义的404错误页面为一个文件之后,有时一直不生效,总是提示这样一句话:“系统找不到指定的文件”. 其实这种错误也只是在某些网站程序中出现,其实解决办法很简单.这是由于II ...
- Activiti工作流学习-----基于5.19.0版本(8)
8.1.5 Start Event 继续上一篇的事件的分享笔记,Start Event指明该处是流程开始,至于开始事件的类型(消息到达开始,指定的事件循环开始等),定义如何开始是在开始事件圆圈图标里面 ...
- 兼容IE与firefox、chrome的css 线性渐变(linear-gradient)
现行渐变首先看下示例(1)垂直渐变 (2)垂直渐变 IE系列 filter: progid:DXImageTransform.Microsoft.Gradient(startColorStr='#FF ...
- 程序错误[C/C++]
对于初学者而言,一般意义上,程序错误可以分为两类,逻辑错误和非逻辑错误.前者是指,程序可以通过编译或链接但运行时不符合预期结果,后者是程序不能通过编译或链接. 乍一看这样的分类非常清楚.不过,当引入语 ...
- SeekBar.OnSeekBarChangeListener解析
public static interface SeekBar.OnSeekBarChangeListener android.widget.SeekBar.OnSeekBarChangeListen ...
- mv,Directory not empty不能目录覆盖
一.mv /test1/* /test2/test1rm -rf /test1 二. You can however use rsync with the --remove-source-files ...