个人整理的c++中关于vector的基本用法

向量 vector库

个人整理的c++中关于vector的基本用法(适合初学者),较为详细,还请各位大佬指点~(目前个人学习c++时间不长)

初始化

vetcor<int>v;           //创建一个空向量存储int
vector<float>v1(3);     //创建一个向量存储3个int
vector<char>v2(3,'a');  //创建一个向量存储3个char类型的'a'
vector<char>v3(v2);     //创建一个向量存储向量v2
vector<int> c1{1,2,3};  //一维vector直接赋值
vector<vector<int>> c2{{1,2,3},{4,5,6}}; //二维vector直接赋值

相关函数

访问头尾

v.begin()               
v.end()                 

遍历

for(auto i:v)
for(i=v.begin();i<v.end();i++)
for(i = 0; i < 5; i++){
   cout << "value of v [" << i << "] = " << v[i] << endl;
}
// 使用迭代器 iterator 访问值
vector<int>::iterator vec = v.begin();
while( vec != v.end()) {
  cout << "value of vec = " << *vec << endl;
  vec++;
}

求长度

v.size()
遍历中使用
for(int i=0;i<v.size();i++){
  cout<<v[i];
}

添加元素

v.push_back(1);               //于向量v尾部添加元素1
v2.insert(v2.begin()+i,x);    //于向量v2下标为i的元素前插入元素x

删除元素

v.pop_back();               //删除v尾巴
v.erase(v.begin()+i);       //删除v下标为i的元素
v.erase(v.begin()+i,v.begin()+j);   //删除v下标为[i,j)范围的元素
v.clear();                  //删除v中所有元素

移位操作

sort(v.begin(),v.end);        //将v中元素从小到大排序
sort(v.begin(),v.end,cmp);    //将v中元素按cmp函数排序
reverse(v.begin(),v.end());   //将v中的元素颠倒
swap(v,v1);                   //交换v与v1的所有元素

相关判断

if(v.empty()){}              //判断v是否为空
if(v==v1){}                   //判断v与v1是否相等

与指针

vector<int>k{1,2,3};
vector<int>*p;
p=&k;
for (int i = 0; i < p->size(); i++){
	cout << p->at(i) << ' ';
}
//1 1 1
vector<int>* p = new vector<int>{ 1,2,3 };
vector<int> k{ 4,5,6 };
p = &k;
for (int i = 0; i < p->size(); i++)	{
	cout << p->at(i) << ' ';
}
//4 5 6
vector<int>* p;
p = new vector<int>{ 1,2,3 };
for (int i = 0; i < p->size(); i++){
	cout << p->at(i) << ' ';
}
//1 2 3
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
C++vector是一个向量类型,它可以容纳多个相同类型的元素。在使用vector之前,需要包含头文件<vector>。在C++,可以使用以下方式定义vector: 1. 定义一个空的vectorvector<int> vec; 2. 定义一个指定大小的vectorvector<int> vec(10); // 定义一个包含10个元素的vector,每个元素的初始值为0 3. 定义一个指定大小和初始值的vectorvector<int> vec(10, 1); // 定义一个包含10个元素的vector,每个元素的初始值为1 4. 定义一个使用初始化列表的vectorvector<int> vec = {1, 2, 3, 4, 5}; // 定义一个包含5个元素的vector,并分别赋值为1, 2, 3, 4, 5 需要注意的是,vectorC++的容器,而不是C语言的类型。在C语言,可以使用数组来实现类似的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [C++使用Vector定义数组](https://blog.csdn.net/yang_yi520/article/details/122602822)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [C++ vector用法整理)](https://blog.csdn.net/djjqoll1841/article/details/101290658)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值