我们需要明白vector这是个什么??
答:通俗而言——一个长度根据所需自动改变的数组,同时还可以用于以邻接表的方式进行存储图
使用前提:
头文件#include
使用C时,还应该加入using namespace std;
声明调用方式:
vector
typename 可以是任何基本类型,各种数、字符、结构体、STL容器(vector、set、queue....)
注意!!如果typename是vector时">>"之间应有空格!!
vector
以下是代码其中一一解释了常用函数的作用,这些注释也是代码中的重难点!
#include
#include
using namespace std;
//vector 应用解析
//vector vi;
//vector >vi;两个>>之间应有空格
//vector vi[ArraySize];理解为纵横向都可以变的二维数组
//vector::iterator it = vi.begin();指将第一个元素的特别地址赋给迭代器 用*(it);进行取值
//vi.push_back();
//vi.pop_back();
//vi.size(); vi.clear(); //size是长度,clear是清空
//vi.insert(it,x);用一个迭代器it插入一个元素x vi.erase(vi.begin()+3); vi.erase(vi.begin()+1,vi.begin()+3);
//vi.begin()+i; 相当于迭代器(特别的地址),仅可以在vector和string中使用
//vi.end(); 指尾元素后的另一个
//vi[i]与*(vi.begin()+i)是等价的
int main()
{
vector vi;
for(int i = 1;i<=5;i++){
vi.push_back(i);
}
vector::iterator it = vi.begin();
//三种取值方式
//(1)
cout<<"用第一种方式输出:"<::iterator it1 = vi.begin() ; it1!=vi.end() ; it1++){//不可用 it1
最后我从网上找了一下stl中vector的其他一些函数(仅供参考):
c++ stl容器set成员函数:begin()--返回指向第一个元素的迭代器
c++ stl容器set成员函数:clear()--清除所有元素
c++ stl容器set成员函数:count()--返回某个值元素的个数
c++ stl容器set成员函数:empty()--如果集合为空,返回true
c++ stl容器set成员函数:end()--返回指向最后一个元素的迭代器
c++ stl容器set成员函数:equal_range()--返回集合中与给定值相等的上下限的两个迭代器
c++ stl容器set成员函数:erase()--删除集合中的元素
c++ stl容器set成员函数:find()--返回一个指向被查找到元素的迭代器
c++ stl容器set成员函数:get_allocator()--返回集合的分配器
c++ stl容器set成员函数:insert()--在集合中插入元素
c++ stl容器set成员函数:lower_bound()--返回指向大于(或等于)某值的第一个元素的迭代器
c++ stl容器set成员函数:key_comp()--返回一个用于元素间值比较的函数
c++ stl容器set成员函数:max_size()--返回集合能容纳的元素的最大限值
c++ stl容器set成员函数:rbegin()--返回指向集合中最后一个元素的反向迭代器
c++ stl容器set成员函数:rend()--返回指向集合中第一个元素的反向迭代器
c++ stl容器set成员函数:size()--集合中元素的数目
c++ stl容器set成员函数:swap()--交换两个集合变量
c++ stl容器set成员函数:upper_bound()--返回大于某个值元素的迭代器
c++ stl容器set成员函数:value_comp()--返回一个用于比较元素间的值的函数