两个排序,求好的解法,该怎么解决
两个排序,求好的解法
1)给一个文件(文件名已知,文件大小约在1M-10M之间)需把文件中数据全部顺序全部颠倒一下,并存到另外一个文件中(文件名已知),原文件中第0个字节放到最后字节,第1字节放到倒数第二字节,依次类推,编写一个函数实现此功能
2)给你一个文本文件,要求按行进行字母的升序排序,即每行第一个字母越小的越排在前面,第一字母相同的比较第二字母,依次类推,输出结果,保存到另外一个文件中(文件名均已知)
------解决方案--------------------
1) 读到内存里,颠倒了在存回去
2)读到一个 map <string, int> 了
写个string 的排序函数。。。。。 - -
------解决方案--------------------
2)
#include "iostream "
#include "map "
#include "string "
#include "fstream "
using namespace std;
int main()
{
map <string, int> data;
ifstream file( "test.txt ");
if (file.fail())
return 1;
while (!file.eof())
{
string s;
getline(file, s);
data[s] = 0;
}
file.close();
ofstream ofile( "output.txt ");
if (ofile.fail())
return 1;
for (map <string, int> ::iterator i = data.begin(); i != data.end(); ++i)
ofile < <(i-> first) < <endl;
ofile.close();
return 0;
}
1)给一个文件(文件名已知,文件大小约在1M-10M之间)需把文件中数据全部顺序全部颠倒一下,并存到另外一个文件中(文件名已知),原文件中第0个字节放到最后字节,第1字节放到倒数第二字节,依次类推,编写一个函数实现此功能
2)给你一个文本文件,要求按行进行字母的升序排序,即每行第一个字母越小的越排在前面,第一字母相同的比较第二字母,依次类推,输出结果,保存到另外一个文件中(文件名均已知)
------解决方案--------------------
1) 读到内存里,颠倒了在存回去
2)读到一个 map <string, int> 了
写个string 的排序函数。。。。。 - -
------解决方案--------------------
2)
#include "iostream "
#include "map "
#include "string "
#include "fstream "
using namespace std;
int main()
{
map <string, int> data;
ifstream file( "test.txt ");
if (file.fail())
return 1;
while (!file.eof())
{
string s;
getline(file, s);
data[s] = 0;
}
file.close();
ofstream ofile( "output.txt ");
if (ofile.fail())
return 1;
for (map <string, int> ::iterator i = data.begin(); i != data.end(); ++i)
ofile < <(i-> first) < <endl;
ofile.close();
return 0;
}