vector是一种顺序容器,事实上和数组差不多,但它比数组更优越。一般来说数组不能动态拓展,(何为动态拓展,即是说如果你知道你要存的数据的个数,你定义的存储数据的数组大小也就决定了,但是若你事先不知道数据的个数,你只能定义一个比较大的数组,若是数据量不多,这样定义数组时分配的内存就大大的浪费了,而且若是当年发现你的数组已经存储不下你的数据了,怎么办,数组时不能扩展容量的,这时候vector的优势就出来了,随你扩展)因此在程序运行的时候不是浪费内存,就是造成越界。而vector正好弥补了这个缺陷,它的特征是相当于可分配拓展的数组,它的随机访问快,在中间插入和删除慢,但在末端插入和删除快,而且如果你用.at()访问的话,也可以做越界检查。

v.push_back(t)  在数组的最后添加一个值为t的数据

v.size()   当前使用数据的大小

v.pop_back();  // 弹出容器中最后一个元素(容器必须非空)

v.back();   // 返回容器中最后一个元素的引用

下面为括号匹配的代码:http://www.cnblogs.com/panxiaoyu/archive/2012/03/10/acm.html

#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
    int n;
    cin>>n;
    while(n--)
    {   
        vector<char> vec;
        string ch;
        vec.push_back(' ');
        cin>>ch;
  int l='(';
  cout<<"l="<<l<<endl;
        for(int i=0;i<ch.length();i++)
        {
            vec.push_back(ch[i]);
  
            if( vec.back()-1 == *(vec.end()-2) || vec.back()-2 == *(vec.end()-2))//检测两端
            {
                vec.pop_back();
                vec.pop_back();
            }
        }
        if(vec.size()==1)
            cout<<"Yes"<<endl;
        else
            cout<<"No"<<endl;
    }
    return 0;
}

下面为具体的vector用法:

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        当前使用数据的大小

11.resize      改变当前使用数据的大小,如果它比当前使用的大,则填充默认值

例:v.resize(2*v.size, 99) 将v的容量翻倍(并把新元素的值初始化为99)

12.reserve     改变当前vecotr所分配空间的大小

13.erase       删除指针指向的数据项

14.clear       清空当前的vector

15.rbegin      将vector反转后的开始指针返回(其实就是原来的end-1)

16.rend        将vector反转构的结束指针返回(其实就是原来的begin-1)

17.empty       判断vector是否为空

18.swap        与另一个vector交换数据

#include <vector>用法之我见的更多相关文章

  1. C++ STL之vector用法总结

    介绍 vector是表示可变大小数组的序列容器. 就像数组一样,vector也采用的连续存储空间来存储元素.也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效.但是又不像数组,它的大 ...

  2. STL vector用法介绍

    STL vector用法介绍 介绍 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作.本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和f ...

  3. vector用法总结(转载)

    一.vector的基本概念 vector是同一种类型的对象的集合,每个对象都有一个对应的整数索引值.和string对象一样,标准库负责管理存储元素的相关内存.我们把vector称为容器,是因为它可以包 ...

  4. C++-STL:vector用法总结

    目录 简介 用法 1. 头文件 2. vector的声明及初始化 3. vector基本操作 简介 vector,是同一类型的对象的集合,这一集合可看作可变大小的数组,是顺序容器的一种.相比于数组,应 ...

  5. STL源代码学习--vector用法汇总

    一.容器vector 使用vector你必须包含头文件<vector>: #include<vector> 型别vector是一个定义于namespace std内的templ ...

  6. c++ vector用法详解

    1. 定义: 向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)可以认为是一个动态数组,其中一个vector中的所有对象都必须是同一种类型的. 2. 构造函 ...

  7. C++中的vector 用法解析

         一.概述     vector 是C++标准模板库的部分内容,他是一个多功能的,能够操作多种 数据结构和算法 的模板类和函数库.     vector 是一个容器,它能够存放各种类型的对象, ...

  8. C++ vector用法

    在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结. 1 基本操作 (1)头文件#include<vector>. (2)创建vector对象,vector<in ...

  9. 【转】 C++ vector用法

    在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结. 1 基本操作 (1)头文件#include<vector>. (2)创建vector对象,vector<in ...

随机推荐

  1. poj 1328 Radar Installation

    题目链接:http://poj.org/problem?id=1328 题意:给出海上有n个小岛的坐标,求发出的信号可以覆盖全部小岛的最少的雷达个数.雷达发射信号是以雷达为圆心,d为半径的圆,雷达都在 ...

  2. 在VC++6.0开发中实现全屏显示

    全屏显示是一些应用软件程序必不可少的功能.比如在用VC++编辑工程源文件或编辑对话框等资源时,选择菜单“View\Full Screen”,即可进入全屏显示状态,按“Esc”键后会退出全屏显示状态. ...

  3. WinDbg 蓝屏dump分析教程

    一.WinDbg是什么?它能做什么? WinDbg是在windows平台下,强大的用户态和内核态调试工具.它能够通过dmp文件轻松的定位到问题根源,可用于分析蓝屏.程序崩溃(IE崩溃)原因,是我们日常 ...

  4. 网页中多媒体对像标记<OBJECT>和<EMBED>

    在网页中常用object和embed标记插入的多媒体对象,比如FLASH,视频等. 用一个快播例子说明下这两个标记的使用和区别: <object classid="clsid:F3D0 ...

  5. SQL Server中Text和varchar(max)数据类型区别

    SQL Server中Text和varchar(max)数据类型区别   以前只知道text和image是可能被SQL Server淘汰的数据类型,但具体原因不太清楚,今天读书的时候发现了text与v ...

  6. Angularjs Controller间通信的几种方法

    先说最简单的,适合简单数据 一.使用controller as <body ng-controller="ParentCtrl as parent"> <inpu ...

  7. 用ORBSLAM2运行TUM Dataset数据集

    参照https://github.com/raulmur/ORB_SLAM2/blob/master/README.md 运行 4. Monocular Examples TUM Dataset 数据 ...

  8. CSS3让一段文字多余的用省略号表示,当鼠标移动上去的时候显示全部文字

    <style type="text/css"> div { width:100px; overflow:hidden; white-space:nowrap; text ...

  9. git pull 和本地文件冲突问题解决

    具体方法如下 git pull origin 分支 //出现错误 git stash  缓存起来 git pull origin 分支 git stash pop //还原 git stash cle ...

  10. EF6 CodeFirst+Repository+Ninject+MVC4+EasyUI实践(八)

    前言 本篇幅将对系统的菜单管理模块进行说明,系统的菜单采用树形结构,这样可以更好地方便层级设计和查看.本示例将说明如何通过EntityFramework读取递归的菜单树形结构,以及结合EasyUI的t ...