ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

学习vector的第一天

2022-02-09 18:06:43  阅读:113  来源: 互联网

标签:10 第一天 元素 back 学习 v1 vector 向量


关于vector 的初步学习

一.关于vector的简单介绍

1.vector实际上是对动态数组的封装;

2.可以向数组一样用下标访问元素,若vector长度为n,则其下标的范围是0~n-1;

3.根据下标访问元素效率高;

4.vector对象的空间随着插入,删除操作自动调整;

5.因为空间自动调整比较耗费时间,因此频繁地插入删除的情况下,vector效率稍差。

使用vector

1.万能头文件 #include<bits/stdc++.h>;

2.或者 除了标准头文件以为还要 #include<vector>;

二.vector-对象的创建

1.vector<元素的类型>向量的名称;

例如:

1.vector<int>v1; //创建了一个int型的向量

2.vector<string>s1;//创建了一个string型的向量

2.从已有的向量复制创建向量

例如:

1.vector<int>v2(v1);//拷贝v1的内容到v2当中去

3.创建10个元素的向量

例如:

1.vector<string>v1(10);

4.创建10个元素的向量且所有的元素均为1.55

例如:

1.vector<int>v1(10,1.55);

5.创建向量的指针

例如:

1.vector<int>*pvec = new vector <int>(10,-5)

//指针指向向量才有意义!

三.对vector的基本操作

1.在vector的尾部添加元素

使用push_back()函数向vector尾部添加元素

例如:这样操作获得了一个具有两个元素的vector,且v1[0]=1,v1[1]=2;

  1. int main(void)
    {
       vector <int> v1; //对象的创建
       v1.push_back(1);
       v1.push_back(2);`
       return 0;
    }
    

2.在任意位置插入元素

使用insert()函数向vector添加函数

例如:开头位置 begin()

​ 末尾位置 end()

int main(void)
{
    vector<int>v1;
    v1.push_back(1);
    v1.push_back(2);
    v1.insert(begin(),0);//从头部插入
    v1.insert(end(),4);//从尾部插入
    v1.insert(end()-1,3);//从倒数第二个位置插入
    return 0;   
}

3.vector用下标去访问与元素

这一点与结构体类似,没什么好说的。

4.在vector的尾部删除元素

使用pop_back()函数删除最后一个函数

当v1[0]=0, v1[1]=1, v1[2]=2, v1[3]=3, v1[4]=10时,

我们采用代码v1.pop_back();后,//删除元素10;

此时v1中元素更新为:v1[0]=0, v1[1]=1, v1[2]=2, v1[3]=3,

5.在vector任意位置删除元素

使用函数erase()删除任意位置的元素

erase :是动词 本意为 抹去,擦掉,删除。

和insert()函数的用法类似,不做介绍。

四.关于vector一部分函数的使用

例如:

1. v.size()        //返回向量的大小;
2. v.max_size()    //返回向量可容纳的最大个数;
3. v.empty()       //返回向量是否有为空;
4. v.resize(n)     //调整向量的大小,使其可以容纳n个元素,如果n<v1.resize(),则删除多出来的元素;否则,添加新的元素。
5. v.resize(n,t)   //调整向量的大小,使其可以容纳n个元素,所有新添加的元素初始化为t。
6. v.capacity()    //获取向量的容量,再分配内存空间之前所能容纳的元素的个数。

标签:10,第一天,元素,back,学习,v1,vector,向量
来源: https://blog.csdn.net/qq_63452489/article/details/122847009

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有