#include <iostream>
#include <fstream>
#include <string>
#include <map>
#include <iomanip>
using namespace std;
int main()
{
class teststr
{
public:
teststr(char ch = ' ', int j = 0, int k = 0):a(ch), b(j), c(k){}
teststr(teststr & te)
{
a = te.a;
b = te.b;
c = te.c;
}
~teststr(){}
char a;
int b;
int c;
};
typedef pair<const int, teststr> Pair;
typedef multimap<int, teststr, greater<int>> MultiMap;
MultiMap MapPoint;
char s[11] = "ifile.txt";
// firstly, need to give a nonempty file record some data meaningful;
// test input file;
ifstream ifil(s);
if (!ifil)
exit(1);
int i;
//teststr * te = new teststr;
teststr te;
int j = 0;
while (ifil >> i >> te.a >> te.b >> te.c)
{
Pair pair(i, te);
MapPoint.insert(pair);
}
MultiMap::iterator it;
for (it = MapPoint.begin(); it != MapPoint.end(); it++)
{
cout << it->first << setw(3) << setfill('-')
<< it->second.a << setw(3) << setfill('-')
<< it->second.b << setw(3) << setfill('-')
<< it->second.c << endl;
}
// test output file;
ofstream ofile(s, ios::out);
if (!ofile)
exit(1);
ofile << 5 << setw(3) << setfill('-')
<< 'f' << setw(3) << setfill('-')
<< 7 << setw(3) << setfill('-')
<< 8 << endl;
for (it = MapPoint.begin(); it != MapPoint.end(); it++)
{
ofile << it->first << setw(3) << setfill('-')
<< it->second.a << setw(3) << setfill('-')
<< it->second.b << setw(3) << setfill('-')
<< it->second.c << endl;
}
return 0;
}
multimap的文件输入输出测试
最新推荐文章于 2022-10-19 15:17:11 发布