vector在编程中具体应用场景有哪些?

2026-04-18 00:431阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计662个文字,预计阅读时间需要3分钟。

vector在编程中具体应用场景有哪些?

介绍+向量(Vector)是一个封装了动态大小数组的有序容器(Sequence Container)。它跟其他类型容器一样,能够存放各种类型的对象。可以简单地认为,向量是一个能够存放任意类型对象的动态数组。

介绍

向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。

顺序序列
顺序容器中的元素按照严格的线性顺序排序。可以通过元素在序列中的位置访问对应的元素。

vector是向量,即可变长数组 或者动态数组
容器使用一个内存分配器对象来动态地处理它的存储需求。

vector在编程中具体应用场景有哪些?

vector的元素不仅可以是int,double,string,还可以是
结构体(注意:结构体要定义为全局的,否则会出错)。

序号 功能 代码样例 效果介绍 1 尾部插入 a.push_back(x) 在容器尾部插入一个值为x的元素 2 中间插入 a.insert(a.begin()+i,x) 在第i个元素前插入x 3 求长度 a.size() 返回元素个数 4 删除尾巴 a.pop_back() 删除尾部的元素 5 删除某个元素 a.erase(v.begin()+i) 删除下标为i位置的元素 9 删除某段 a.erase(v.begin()+l,v.begin()+r) 删除下标[l,r)的元素 10 清空 a.clear() 清空容器所有元素 11 排序 sort(a.begin(),a.end()); 将a中元素按升序排列 题目 递归实现指数型枚举

此过程可以用递归加vector完成,用递归来确定选或不选,再用vector进行选或不选的添加和回溯

#include <bits/stdc++.h> using namespace std; int n; vector<int> a; void calc(int x){ if (x==n+1){ for (int i=0;i<a.size();i++) printf("%d ",a[i]); printf("\n"); return; } calc(x+1); a.push_back(x); calc(x+1); a.pop_back(); } int main(){ scanf("%d",&n); calc(1); return 0; } 递归实现组合型枚举

老样子,加一个剪枝即可

#include <bits/stdc++.h> using namespace std; int n,m; vector<int> a; void calc(int x,int dis){ if (dis==m){ for (int i=0;i<a.size();i++) printf("%d ",a[i]); printf("\n"); return; }if (x==n+1)return; a.push_back(x); calc(x+1,dis+1); a.pop_back();; calc(x+1,dis); } int main(){ scanf("%d%d",&n,&m); calc(1,0); return 0; }

本文共计662个文字,预计阅读时间需要3分钟。

vector在编程中具体应用场景有哪些?

介绍+向量(Vector)是一个封装了动态大小数组的有序容器(Sequence Container)。它跟其他类型容器一样,能够存放各种类型的对象。可以简单地认为,向量是一个能够存放任意类型对象的动态数组。

介绍

向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。

顺序序列
顺序容器中的元素按照严格的线性顺序排序。可以通过元素在序列中的位置访问对应的元素。

vector是向量,即可变长数组 或者动态数组
容器使用一个内存分配器对象来动态地处理它的存储需求。

vector在编程中具体应用场景有哪些?

vector的元素不仅可以是int,double,string,还可以是
结构体(注意:结构体要定义为全局的,否则会出错)。

序号 功能 代码样例 效果介绍 1 尾部插入 a.push_back(x) 在容器尾部插入一个值为x的元素 2 中间插入 a.insert(a.begin()+i,x) 在第i个元素前插入x 3 求长度 a.size() 返回元素个数 4 删除尾巴 a.pop_back() 删除尾部的元素 5 删除某个元素 a.erase(v.begin()+i) 删除下标为i位置的元素 9 删除某段 a.erase(v.begin()+l,v.begin()+r) 删除下标[l,r)的元素 10 清空 a.clear() 清空容器所有元素 11 排序 sort(a.begin(),a.end()); 将a中元素按升序排列 题目 递归实现指数型枚举

此过程可以用递归加vector完成,用递归来确定选或不选,再用vector进行选或不选的添加和回溯

#include <bits/stdc++.h> using namespace std; int n; vector<int> a; void calc(int x){ if (x==n+1){ for (int i=0;i<a.size();i++) printf("%d ",a[i]); printf("\n"); return; } calc(x+1); a.push_back(x); calc(x+1); a.pop_back(); } int main(){ scanf("%d",&n); calc(1); return 0; } 递归实现组合型枚举

老样子,加一个剪枝即可

#include <bits/stdc++.h> using namespace std; int n,m; vector<int> a; void calc(int x,int dis){ if (dis==m){ for (int i=0;i<a.size();i++) printf("%d ",a[i]); printf("\n"); return; }if (x==n+1)return; a.push_back(x); calc(x+1,dis+1); a.pop_back();; calc(x+1,dis); } int main(){ scanf("%d%d",&n,&m); calc(1,0); return 0; }