• 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语言中的数组,尽量使用数组。因为向量空间如果不够,会重新分配空间,导致时间浪费。

  • 相关阅读:
    sqlserver2005"此数据库没有有效所有者,因此无法安装数据库关系图支持对象"的解决方法
    重复表的复制操作
    重复表中连级下拉框采用数据源时,子级下拉框列表数据无法持久的问题
    SQL server2005连接与进程
    重复表操作
    XPath语法
    Request.ServerVariables 参数大全
    50个Sql语句
    Inside C++ new/delete and new[]/delete[]
    颜色空间
  • 原文地址:https://www.cnblogs.com/aimqqroad-13/p/4769831.html
Copyright © 2020-2023  润新知