gpt4 book ai didi

简单讲解c++ vector

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 37 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章简单讲解c++ vector由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

在c++中,vector是一个十分有用的容器.

作用:它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据.

vector在C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.

特别注意:

使用vector需要注意以下几点:

1.加入头文件 <vector> 。

2.如果你要表示的向量长度较长(需要为向量内部保存很多数),容易导致内存泄漏,而且效率会很低; 。

3.Vector作为函数的参数或者返回值时,需要注意它的写法:

double Distance(vector &a, vector &b) 其中的“&”绝对不能少!!! 。

一维vector 。

创建一维vector:

?
1
2
vector< int > nums;    //不指定长度
vector< int > nums(n);  //指定长度为n

添加元素 。

?
1
2
3
nums.push_back(1);   //直接从数组末端添加
nums[i]=1;       //直接赋值给第i个位置
nums.insert(nums.begin()+i,a); //在第i+1个元素前插入a

删除元素 。

?
1
2
3
4
5
nums.resize(nums.size-i);  //直接将数组长度减少,某种意义上删掉了后面i个
nums.pop_back();       //删掉最后一个元素
nums.erase(nums.begin()+i); //删掉第i+1个元素
nums.erase(nums.begin()+i,nums.end()+j);  //删除区间[i,j-1],区间从0开始
nums.clear();        //清空

其它 。

获取长度:nums.size(),

排序(O(nlogn)):sort(nums.begin(),nums.end()),

翻转:reverse(nums.begin(),nums.end()),

合并两个vector:合并nums1和nums2,并将合并的数组赋值给nums 。

?
1
2
3
4
vector< int > nums1(m),nums2(n);
vector< int > nums;
nums.resize(m+n);
merge(nums1.begin(),nums1.end(),nums2.begin(),nums2.end(),nums);

二维vector 。

创建M*n二维vector 。

?
1
vector< vector< int > > nums(m,vector< int >(n));  //m*n的二维vector

解释:

定义了一个vector容器,元素类型为vector ,初始化为包含m个vector 对象,每个对象都是一个新创立的vector 对象的拷贝,而这个新创立的vector 对象被初始化为包含n个0.

vector (n)表示构造一个无名且含n个0的vector 对象.

动态创建m*n的二维vector 。

方法一 。

?
1
2
3
4
vector<vector < int > > nums;3
 
nums.resize(m);
for ( int i=0;i<m;i++) nums[i].resize(n);

方法二 。

?
1
2
vector<vector < int > > nums;
nums.resize(m,vector< int >(n));

初始化二维数组 。

?
1
vector<vector < int > > nums(m ,vector< int >(n,0));  //m*n的二维vector,所有元素为0

获得二维数组的行数:nums.size(),

获得二维数组的列数:nums[0].size(); 。

数组遍历 。

?
1
2
3
4
5
6
int m = nums.size(),n = nums[0].size();
for ( int i = 0; i < m; i++){
   for ( int j = 0; j < n; j++){
     cout<<nums[i][j]<<endl;
   }
}

用vector还可以用结构体类型哟 。

以上就是简单讲解c++ vector的详细内容,更多关于c++&vector的资料请关注我其它相关文章! 。

原文链接:https://www.cnblogs.com/TongWY/p/13653822.html?utm_source=tuicool&utm_medium=referral 。

最后此篇关于简单讲解c++ vector的文章就讲到这里了,如果你想了解更多关于简单讲解c++ vector的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com