#include <iostream>
#include <vector>
#include <string>
#include <algorithm> // For std::sort
// Comparator function to sort strings as decimal numbers
bool compareAsDecimal(const std::string& a, const std::string& b) {
// Convert strings to double for comparison
double numA = std::strtod(a.c_str(), nullptr);
double numB = std::strtod(b.c_str(), nullptr);
return numA < numB;
}
int main() {
// Input array of strings
std::vector<std::string> numbers = {"12.3", "5.6", "789.1", "3.14", "456.0", "0", "0.01", "4.0"};
// Sort the array using the custom comparator
std::sort(numbers.begin(), numbers.end(), compareAsDecimal);
std::cout << "Sorted array of decimal strings:" << std::endl;
for (const std::string& num : numbers) {
std::cout << num << " ";
}
}
/*
run:
Sorted array of decimal strings:
0 0.01 3.14 4.0 5.6 12.3 456.0 789.1
*/