知识补充--vector容器与queue以及stack的基本使用方法

vector容器与queue以及stack的基本使用方法


vector-容器:

vector定义

vector是向量类型,可以容纳许多类型的数据,因此也被称为容器
进行vector操作前应添加头文件 vector


vector初始化

vector<类型>标识符

初始化的方法:

1.
//定义具有10个整型元素的向量,不具有初值,其值不确定
vector<int>a(10);
2.
//定义具有10个整型元素的向量,且给出的每个元素初值为1
vector<int>a(10,1);
3.
//用向量b给向量a赋值,a的值完全等价于b的值
vector<int>a(b);
4.
//将向量b中从0-2(共三个)的元素赋值给a,a的类型为int型
vector<int>a(b.begin(),b.begin+3);
5.
//从数组中获得初值
int b[7]={1,2,3,4,5,6,7};
vector<int> a(b,b+7;

vector一般常用操作
void push_back(const T& x):向量尾部增加一个元素X
void pop_back():删除向量中最后一个元素
void clear():清空向量中所有元素
也可以直接类似数组下标访问
vector<int>a(10,1);
cout<<a[5]<<endl;
int size() const:返回向量中元素的个数
bool empty() const:判断向量是否为空,若为空,则向量中无元素

vector 迭代器操作
迭代器遍历
vector<int>::iterator it;//声明一个迭代器,来访问vector容器,作用:遍历或者指向vector容器的元素 
    for(it=obj.begin();it!=obj.end();it++)
    {
        cout<<*it<<" ";
    }
迭代器删除操作
iterator erase(iterator it):删除向量中迭代器指向元素
iterator erase(iterator first,iterator last):删除向量中[first,last)中元素
迭代器插入操作
iterator insert(iterator it,const T& x):向量中迭代器指向元素前增加一个元素x
iterator insert(iterator it,int n,const T& x):向量中迭代器指向元素前增加n个相同的元素x

二维vector
变量声明
vector<vector<int> > 变量名;
例如:vector<vector<int>> ans;
添加行
vector<vector<int>> ans;
ans.push_back(vector<int>()); 
行列长度
vector<vector<int>> ans;
ans.size(); //横向
ans[0].size() //纵向
遍历类似二维数组
for(int i=0;i<v2d.size();i++)
{
        for(int j=0;j<v2d[0].size();j++)
        {
            cout<<v2d[i][j]<<" ";//使用下标访问 
        }
}

queue-队列

只能访问 queue 容器适配器的第一个和最后一个元素。只能在容器的末尾添加新元素,只能从头部移除元素。–先进先出原则

基本操作:

front():返回 queue 中第一个元素的引用。
如果 queue 是常量,就返回一个常引用;如果 queue 为空,返回值是未定义的。

back():返回 queue 中最后一个元素的引用。
如果 queue 是常量,就返回一个常引用;如果 queue 为空,返回值是未定义的。

push(const T& obj):在 queue 的尾部添加一个元素的副本。
这是通过调用底层容器的成员函数 push_back() 来完成的。

push(T&& obj):以移动的方式在 queue 的尾部添加元素。
这是通过调用底层容器的具有右值引用参数的成员函数 push_back() 来完成的。

pop():删除 queue 中的第一个元素。

size():返回 queue 中元素的个数。

empty():如果 queue 中没有元素的话,返回 trueemplace():用传给 emplace() 的参数调用 T 的构造函数,在 queue 的尾部生成对象。

swap(queue<T> &other_q):将当前 queue 中的元素和参数 queue 中的元素交换。
它们需要包含相同类型的元素。也可以调用全局函数模板 swap() 来完成同样的操作。

stack-栈

栈(stack)本身是一种后进先出的数据结构

基本操作

top():返回一个栈顶元素的引用,类型为 T&。
如果栈为空,返回值未定义。

push(const T& obj):可以将对象副本压入栈顶。
这是通过调用底层容器的 push_back() 函数完成的。

push(T&& obj):以移动对象的方式将对象压入栈顶。
这是通过调用底层容器的有右值引用参数的 push_back() 函数完成的。

pop():弹出栈顶元素。

size():返回栈中元素的个数。

empty():在栈中没有元素的情况下返回 trueemplace():用传入的参数调用构造函数,在栈顶生成对象。

swap(stack<T> & other_stack):将当前栈中的元素和参数中的元素交换。
参数所包含元素的类型必须和当前栈的相同。对于 stack 对象有一个特例化的全局函数 swap() 可以使用。

完。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值