好吧,我有一个小任务,我需要使用std :: sort对字符串向量进行排序,但它不会排序任何"数字"以上两个正确消化。关键是我使用此API进行分配。
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<string> Nums = { "1", "5", "34", "3", "6", "12", "21" };
sort(Nums.begin(), Nums.end());
for (int i = 0; i < Nums.size(); i++)
{
cout << Nums[i] << endl;
}
system("PAUSE");
}
结果:
1
12
21
3
34
5
6
Press any key to continue . . .
想要:
1
3
5
6
12
21
34
答案 0 :(得分:2)
std::sort
正在按照您的要求进行操作:它按字典顺序对字符串列表进行排序。要进行数字排序,您需要将自定义比较器传递给sort
,它将字符串与数字进行比较。例如:
std::sort(std::begin(Nums), std::end(Nums)
[] (const std::string& lhs, const std::string& rhs) {
return std::stoi(lhs) < std::stoi(rhs);
});
这使用标准库中的函数stoi
将字符串转换为int
进行比较。
答案 1 :(得分:0)
我以更简单的方式提供了相同的东西。您必须使用自定义 foreach($result['content'] as $res){
sum($res['member']);
}
才能实现此目的。
^[<>]?\s?(\d{,4})?\.?(\d{1,4})?$