因为它以数组的形式储存,所以它的内存空间是连续的。可以在运行中根据需要改变数组的大小。
基本操作:
头文件 #include<vector>
创建vector对象 vector<int>vec;//默认初值都为0
尾部插入数组a: vec.push_back(a);
插入元素: vec.insert(vec.begin()+i,a);在第i个元素后面插入a
删除元素: vec.erase(vec.begin()+a);删除第a+1个元素
vec.erase(vec.begin()+i,vec.end()+j);删除区间[i,j-1]
vec.pop_back();删除末尾的元素
使用下标访问元素: cout<<vec[0]<<endl;记住下标是从0开始的。
使用迭代器访问元素: vector<int>::iterator it;
for(it=vec.begin();it!=vec.end();it++)
cout<<*it<<endl;</span>
向量大小: vec.size();
清空: vec.clear();//vec.size()等于0
常用方法:
1.vector<int>a 创建一个动态数组a,a的默认初值为0
2.vector<int >b(a) 将a中的元素复制到b中
3.vetcor<int>a(100) 将数组a的元素定义为100个,默认初始值为0
4.vector<int>a(100,6) 定义100个值为6的元素
5.vector<string>a(10,"null") 定义10个值为null的元素
6.vector<string>a(10,"hello") 定义10个值为hello的元素
7.vector<string>b(a.begin(),a.end()) 将动态数组a的元素值复制到b中
常用操作:
1.a.push_back(100) 在尾部加入一个值为100的元素
2.a.size() 返回数组中元素的个数
3.bool isEmpty=a.empty() 判断a是否为空,若为空返回true,若不为空则返回false
4.cout<<a[0]<<endl 输出数组的大小
5.a.insert(a.begin+i,k) 在第i个元素前插入k
6.a.insert(a.end(),10,5) 在末尾插入10个值为5的元素
7.a.pop_back 删除末尾元素
8.a.erase(a.begin()+i,a.begin()+j) 将[i,j-1]的元素都删除
9.a.erase(a.begin()+i) 将第i+1个元素删除
10.a.resize(n) 将数组重置为n个元素
11.a.clear() 清空数组
12.reverse(a.begin(),a.end()) 将数组逆转
13.sort(a.begin(),a.end()) 将数组从小到大排序
————————————————
版权声明:本文为CSDN博主「一个傻傻的程序员」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/glsjh/article/details/123467985
定义一个字符串容器:vector<string>vec//可看作二维数组
获得二维数组的行数:nums.size();
获得二维数组的列数:nums[0].size()
例题:
给你一个整数 n ,找出从 1 到 n 各个整数的 Fizz Buzz 表示,并用字符串数组 answer(下标从 1 开始)返回结果,其中:
answer[i] == "FizzBuzz" 如果 i 同时是 3 和 5 的倍数。
answer[i] == "Fizz" 如果 i 是 3 的倍数。
answer[i] == "Buzz" 如果 i 是 5 的倍数。
answer[i] == i (以字符串形式)如果上述条件全不满足。
class Solution {
public:
vector<string> fizzBuzz(int n) {
vector<string>answer;
for(int i = 1;i <= n;i++)
{
if(i % 3 == 0 && i % 5 == 0)
answer.push_back("FizzBuzz");
else if(i % 3 == 0)
answer.push_back("Fizz");
else if(i % 5 == 0)
answer.push_back("Buzz");
else
answer.push_back(to_string(i));//将整型转换为字符串型
}
return answer;
}
};
输入:n = 3 输出:["1","2","Fizz"]