решение нисколько не лучше, просто сделанное по-другому, всё хранится в памяти:
Код:
// без этого билдер 4 не собирает STL
// #include <condefs.h>
// может понадобиться
// #include <vector>
// #include <algorithm>
// using namespace std;
vector<vector<double> > rows;
// считаем что в файле ровно 4 столбца, причём одинаковой длины
// иначе получится фигня
{
ifstream input("20_1.txt");
double x, y, tmp;
input >> x >> y; // в начале файла 2 каких-то возможно нужных значения
// читаем по спискам
for(unsigned n = 0; (input >> tmp); n = (n + 1) & 3)
{
rows[n].push_back(tmp);
}
// сортируем списки
for(unsigned n = 0; n < rows.size(); ++n)
{
sort(rows[n].begin(), rows[n].end());
}
}