首先记录下字符串与数字想转换的两条语句
1.数字转换为字符串,使用to_string
int num = 5;
string ch = to_string(num);
2.字符串转换为数字,使用atoi()
string ch="5";
int num=atoi(ch.c_str());
之前在python里遇到过很方便的返回序号程序,c++中要复杂一点,但是思想一样。
使用sort库函数来进行排序,并巧用lambda函数来定义自定义排序。如果自己不仅仅是比较大小,就通过更改lambda函数就好。
vector<int> sort_indexes(const vector<int>& v, bool reverse=false) {
vector<int> idx(v.size());//声明一个保存序号的vector,大小和输入一致。
for (int i = 0; i != idx.size(); ++i) idx[i] = i;//赋值0-size-1 的序号
if(reverse)//是否为逆序
{
sort(idx.begin(), idx.end(),//调用系统库sort函数,输入一对迭代器并用lambda函数作为对象
[& v](int i1, int i2) {return v[i1] > v[i2];});
}
else{
sort(idx.begin(), idx.end(),
[& v](int i1, int i2) {return v[i1] < v[i2];});
}
return idx;
}