一,数组的使用
1,声明数组
如double balance[10];
2,从初始化数组
double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};
或double balance[] = {1000.0, 2.0, 3.4, 7.0, 50.0};
3.获取数组长度
sizeof(b)/sizeof(b[0]);
4,排序与逆序
#include<algorithm>
int nums[6]={2,4,5,1,7,3};
sort(nums,nums+6,less<int>());//正序
sort(nums,nums+6,greater<int>());//逆序
二,vector的使用
1,定义和初始化vector对象
vector<T> v3(n,val); //v3中包含n个重复元素,每个元素的值都是val;
如vector<int> nums(numbers.size(),0);
注意:
也可以vector<int> nums;来构造一个没有声明大小的vector,但之后只能先用nums.push_back()来先插入元素;
2,vector的长度
v3.size();
3,向vector对象中添加对象
利用vector的成员函数push_back向其中添加对象,如:
v1.push_back(22); //向v1末尾添加个元素22;
4,删除元素
pop_back()删除最后一个元素;
empty()判断该数组是否为空
5,排序与逆序
#include<algorithm>
sort(v1.begin(),v1end())//将v1正向排序 即按照从小到大的顺序排序
sort(v1.rbegin(),v1.rend());//将v1反向排序 即按照从大到小的顺序排序
6,两个vector拼接
nums1.insert(nums1.end(),nums2.begin(),nums2.end());//将nums2数组拼接到nums1后面;
注:
注意sort( , , compare() )函数的用发,可以在compare自定义比较方法!!
struct compare{
bool operator()(valuetype a, valuetype b){
return
}
};
比如牛客网例题:
class Solution {
public:
struct compare{
bool operator()(string a,string b){
return a+b<b+a;
}
};
string PrintMinNumber(vector<int> numbers) {
vector<string> nums;
for(int i=0;i<numbers.size();i++){
nums.push_back(to_string(numbers[i]));
}
sort(nums.begin(), nums.end(),compare());
string res="";
for(int i=0;i<numbers.size();i++){
res+=nums[i];
}
return res;
}
};