Я хочу отсортировать файл, который содержит целые числа, но хотел сортировать только построчно.Я пытался, но я уверен, что то, что я делаю ниже, не на месте.
void sort_file_in_place(const char* filename) {
fstream sort_file;
sort_file.open(filename, ios::out | ios::in);
vector <vector <int> > input_vect;
string line;
std::string delimiter = " ";
int vect_index = 0;
while (getline(cin, line)) {
//store into vector of vectors
//tokenise string
size_t pos = 0;
int value = 0;
int count = 0;
while ((pos = line.find(delimiter)) != std::string::npos) {
string token = line.substr(0, pos);
line.erase(0, pos + delimiter.length());
value = std::atoi(token.c_str());
count++;
}
input_vect.resize(vect_index++, vector<int>(count));
}
//sort vector of vectors
for (int i = 0; i < input_vect.size(); i++) {
sort(input_vect[i].begin(), input_vect[i].end(), std::less<int>());
//print the sorted vectors and alos verify the content
for (auto v : input_vect[i]) cout << v << " ";
}
//write back into the file
//Todo
}
Приведенный выше код не является полным, но я надеюсь, что вы получите то, что я хотел спросить.
Пожалуйста, предложите лучшее решение.
Также я хочу отсортировать эти строки, используя разные потоки, например:
Если содержимое файла:
13 38 13 100 4 234 85 34 0100 88
1 4 5 3 8 9 1 10
111 10 112 3 4 098 194
5 4 8 3 9 13 24 78 09 99
Я хочу создать четыре потока для сортировки каждой строки на месте.