• STL——vector


    学到STL的vector,发现手中的材料不是很详细,这里做个汇总。

    1 操作

    (1)头文件#include<vector>.

    (2)创建vector对象,vector<int> vec;  注:这里应该是 vector<数据类型>对象;为通用形式,数据类型可以为一般的int ,long ,char ,string, double ,还可以为结构体等其他复杂数据类型。

    (3)尾部插入数字:vec.push_back(a);

    (4)使用下标访问元素,cout<<vec[0]<<endl;记住下标是从0开始的。

    (5)使用迭代器访问元素.

    vector<int>::iterator it;
    for(it=vec.begin();it!=vec.end();it++)
        cout<<*it<<endl;

    (6)插入元素:    vec.insert(vec.begin()+i,a);在第i个元素后面插入a;

    (7)删除元素:    vec.erase(vec.begin()+2);删除第3个元素    ;   vec.erase(vec.begin()+i,vec.end()+j);删除区间[i,j-1];    区间从0开始

    (8)vec.pop_back() ; 删除最后一个数据。

    (9)向量大小:vec.size();   v.resize(2*v.size)或 v.resize(2*v.size, 99) 将v的容量翻倍(并把新元素的值初始化为99)

    (10)清空:vec.clear();

    (11) vec[i]: 返回v中位置为n的元素 警告:必须是已存在的元素才能用下标操作符进行索引。通过下标操作进行赋值时,不会添加任何元素。仅能对确知已存在的元素进行下标操作

    (12) vec.capacity();  返回当前向量所能容纳的最大元素值。

    (13) vec.max_size(); 返回最大可允许的vector元素个数。

    (14) vect.swap(vector<T> & ); 交换两个同类型向量的数据。

    (15) vect.assign(int n,const vector<T> & x);  设置向量中第n个元素的值为x.

    (16)  v1==v2;  判断v1与v2是否相等.

    (17) vect.empty(); 判断是否为空。返回类型为bool.

    注: vector可以实现动态增长的数组。如果题目中能使用C语言中的数组,尽量使用数组。因为向量空间如果不够,会重新分配空间,导致时间浪费。

  • 相关阅读:
    一球从100米高度自由落下, 每次落地后反跳回原高度的一半; 再落下,求它在第10次落地时, 共经过多少米?第10次反弹多高?
    输入某年某月某日,判断这一天是这一年的第几天?
    一、spring——helloWorld
    遍历Map的四种方法
    六、IO流——文件
    五、集合
    在java项目中使用log4j的实例
    Nginx配置文件nginx.conf中文详解(总结)
    Windows7下安装搭建Ngnix教程
    第七课 文件存储
  • 原文地址:https://www.cnblogs.com/aimqqroad-13/p/4769831.html
Copyright © 2020-2023  润新知