c++ vector创建数组
来源:互联网 发布:vb安装包下载 编辑:程序博客网 时间:2024/04/25 21:14
Vectors
构造函数。
函数列表如下:
Constructors
Operators
assign()
at()
back()
begin()
capacity()
clear()
empty()
end()
erase()
front()
get_allocator()
insert()
max_size()
pop_back()
push_back()
rbegin()
rend()
reserve()
resize()
size()
swap()
////////////////////////////////////////////////////////////////////////////
构造函数
语法:
vector();
vector(
vector(
vector(
C++
无参数
数量(num)和值(val)
vector(from)
迭代器(start)和迭代器(end)
举例,下面这个实例构造了一个包含5个值为42的元素的Vector
vector<int>
运算符
语法:
v1
v1
v1
v1
v1
v1
v[]
C++
两个vectors被认为是相等的,如果:
它们具有相同的容量
所有相同位置的元素相等.
vectors之间大小的比较是按照词典规则.
assign函数
语法:
void
void
assign()
at函数
语法:
TYPE
at()
vector<int>
for(
cout
}
这段代码访问了vector末尾以后的元素,这将可能导致很危险的结果.以下的代码将更加安全:
vector<int>
for(
cout
}
取代试图访问内存里非法值的作法,at()
back
语法:
TYPE
back()
vector<int>
for(
v.push_back(i);
}
cout
这段代码产生如下结果:
The
begin
语法:
iterator
begin()函数返回一个指向当前vector起始元素的迭代器.例如,下面这段使用了一个迭代器来显示出vector中的所有元素:
vector<int>
vector<int>::iterator
for(
cout
capacity
语法:
size_type
capacity()
clear
语法:
void
clear()函数删除当前vector中的所有元素.
empty
语法:
bool
如果当前vector没有容纳任何元素,则empty()函数返回true,否则返回false.例如,以下代码清空一个vector,并按照逆序显示所有的元素:
vector<int>
for(
}
while(
}
end
语法:
iterator
end()
erase
语法:
iterator
iterator
erase函数要么删作指定位置loc的元素,要么删除区间[start,
//
vector<char>
for(
int
vector<char>::iterator
vector<char>::iterator
for(
{
}
这段代码将会显示如下输出:
BCDEFGHIJ
CDEFGHIJ
DEFGHIJ
EFGHIJ
FGHIJ
GHIJ
HIJ
IJ
J
front
语法:
TYPE
front()函数返回当前vector起始元素的引用
get_allocator
语法:
allocator_type
get_allocator()
示例:vector<int>v3(
insert
语法:
iterator
void
void
insert()
在指定位置loc前插入值为val的元素,返回指向这个元素的迭代器,
在指定位置loc前插入num个值为val的元素
在指定位置loc前插入区间[start,
举例:
//创建一个vector,置入字母表的前十个字符
vector<char>
for(
alphaVector.push_back(
//插入四个C到vector中
vector<char>::iterator
alphaVector.insert(
//显示vector的内容
for(
cout
这段代码将显示:
CCCCABCDEFGHIJ
max_size
语法:
size_type
max_size()
pop_back
语法:
void
pop_back()函数删除当前vector最末的一个元素,例如:
vector<char>
for(
int
vector<char>::iterator
for(
alphaVector.pop_back();
for(
cout
}
这段代码将显示以下输出:
ABCDEFGHI
ABCDEFGH
ABCDEFG
ABCDEF
ABCDE
ABCD
ABC
AB
A
push_back
语法:
void
push_back()添加值为val的元素到当前vector末尾
rbegin
语法:
reverse_iterator
rbegin函数返回指向当前vector末尾的逆迭代器.(译注:实际指向末尾的下一位置,而其内容为末尾元素的值,详见逆代器相关内容)
示例:
vector<int>v1;
for(int
{
}
vector<int>::reverse_iterator
pos=v1.rbegin();
cout<<*pos<<"
pos++;
cout<<*pos<<endl;
输出结果为:5
rend
语法:
reverse_iterator
rend()函数返回指向当前vector起始位置的逆迭代器.
示例:
vector<int>v1;
for(int
{
}
vector<int>::reverse_iterator
pos=v1.rend();
pos--;
cout<<*pos<<"
pos--;
cout<<*pos<<endl;
输出结果为:1
reserve
语法:
void
reserve()函数为当前vector预留至少共容纳size个元素的空间.(译注:实际空间可能大于size)
resize
语法:
void
resize()
resize
初次接触这两个接口也许会混淆,其实接口的命名就是对功能的绝佳描述,resize就是重新分配大小,reserve就是预留一定的空间。这两个接口即存在差别,也有共同点。下面就它们的细节进行分析。
因两接口的源代码相当精简,以至于可以在这里贴上它们:
void
void
示例:
#include<iostream>
#include<vector>
using
void
{
for(int
{
}
v1.resize(5,8);//多出的两个空间都初始化为8,
for(i=0;i<v1.size();i++)//resize与reserver并不会删除原先的元素以释放空间
{
}
cout<<endl;
v1.reserve(7);//
{
}
cout<<endl;
cout<<v1.size()<<endl;
cout<<v1.capacity()<<endl;
}
输出结果为:
1
1
5
7
size
语法:
size_type
size()
swap
语法:
void
swap()函数交换当前vector与vector
示例:
v1.push_back(i);
v2.push_back(4);
cout<<v1[j]<<"
cout<<v2[k]<<"
输出结果为:
1
1
- c++ vector创建数组
- vector动态创建数组
- vector动态创建数组
- 动态创建二维vector数组
- 动态创建二维vector数组
- 用vector创建二维数组
- 动态创建二维vector数组
- 用vector创建数组对象
- 动态创建二维vector数组
- 动态创建二维vector数组
- 动态创建二维vector数组
- 动态创建二维vector数组
- 动态创建二维vector数组
- vector创建的二维数组
- VECTOR in C++:二维数组
- 动态创建二维vector数组 C和C++ 及指针与引用的区别
- c++ vector类创建动态数组
- 使用C++ vector类创建动态数组
- Struts2中结果集类型
- Windows 命令行输入输出重定向问题
- jstree 异步加载json节点数据
- 超炫的选项卡
- 多语言协作工具thrift实例讲解
- c++ vector创建数组
- 从零开始自制操作系统(序)
- sybase ASE代理表的建立
- hp下编译动态库运行时Unsatisfied data symbol
- Android_PreferenceActivity
- poj2255 根据二叉树的前序和中序遍历 求出树的后序遍历
- Javascript中正则必记知识点
- javap命令详解
- C/C++基本数据类型