// C++实例程序
// VC++ 6.0能编译通过并且正常运行
// 输出时,标记有黄色背景的是被排列项,以从小到大排序
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <io.h>
#include <windows.h>
#include <iostream>
#include <fstream>
#include <sstream>
#include <strstream>
#include <algorithm>
#include <string>
#include <vector>
#include <map>
class census{
public:
std::string m_sCityName; //城市名
long int m_nCityPeople; //城市人口数量
double m_xCivilization; //城市人口文化水平
public:
void input(std::string s, long int n, double f)
{
m_sCityName = s;
m_nCityPeople = n;
m_xCivilization = f;
}
census(void){return;}
census(std::string s, long int n, double f)
{
input(s, n, f);
}
};
bool _sort_with_name(const census& x1, const census& x2) //城市名按城市的字母先后排序
{
return x1.m_sCityName < x2.m_sCityName;
}
bool _sort_with_people(const census& x1, const census& x2) //城市人口按数的大小排序
{
return x1.m_nCityPeople < x2.m_nCityPeople;
}
bool _sort_with_civilization(const census& x1, const census& x2) //城市人口文化水平按数的大小排序
{
return x1.m_xCivilization < x2.m_xCivilization;
}
int main()
{
std::vector<census> vCity; //数组
//装入数组
{
census x("北京", 1000, 0.99);
vCity.push_back(x);
}
{
census x("云南", 10000, 0.79);
vCity.push_back(x);
}
{
census x("四川", 5000, 0.80);
vCity.push_back(x);
}
{
census x("香港", 900, 0.99);
vCity.push_back(x);
}
{
census x("拉萨", 7000, 0.70);
vCity.push_back(x);
}
//排序
std::sort(vCity.begin(), vCity.end(), _sort_with_name);
//输出
std::cout << "Sort with name of city: " << std::endl << "=====================================" << std::endl;
std::cout << "Name\tPeople\tCivilization" << std::endl;
std::cout << "=====================================" << std::endl;
for(std::vector<census>::iterator it = vCity.begin(); it != vCity.end(); it++){
census x = *it;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 224);
std::cout << x.m_sCityName;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 8);
std::cout << "\t" << x.m_nCityPeople << "\t" << x.m_xCivilization*100 << "%" << std::endl;
}
std::cout << "=====================================" << std::endl;
//排序
std::sort(vCity.begin(), vCity.end(), _sort_with_people);
//输出
std::cout << "Sort with quantity of people: " << std::endl << "=====================================" << std::endl;
std::cout << "Name\tPeople\tCivilization" << std::endl;
std::cout << "=====================================" << std::endl;
for(it = vCity.begin(); it != vCity.end(); it++){
census x = *it;
std::cout << x.m_sCityName << "\t";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 224);
std::cout << x.m_nCityPeople;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 8);
std::cout << "\t" << x.m_xCivilization*100 << "%" << std::endl;
}
std::cout << "=====================================" << std::endl;
//排序
std::sort(vCity.begin(), vCity.end(), _sort_with_people);
//输出
std::cout << "Sort with civilization of people: " << std::endl << "=====================================" << std::endl;
std::cout << "Name\tPeople\tCivilization" << std::endl;
std::cout << "=====================================" << std::endl;
for(it = vCity.begin(); it != vCity.end(); it++){
census x = *it;
std::cout << x.m_sCityName << "\t" << x.m_nCityPeople << "\t";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 224);
std::cout << x.m_xCivilization*100 << "%";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
std::cout << std::endl;
}
system("PAUSE");
return 0;
}
// VC++ 6.0能编译通过并且正常运行
// 输出时,标记有黄色背景的是被排列项,以从小到大排序
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <io.h>
#include <windows.h>
#include <iostream>
#include <fstream>
#include <sstream>
#include <strstream>
#include <algorithm>
#include <string>
#include <vector>
#include <map>
class census{
public:
std::string m_sCityName; //城市名
long int m_nCityPeople; //城市人口数量
double m_xCivilization; //城市人口文化水平
public:
void input(std::string s, long int n, double f)
{
m_sCityName = s;
m_nCityPeople = n;
m_xCivilization = f;
}
census(void){return;}
census(std::string s, long int n, double f)
{
input(s, n, f);
}
};
bool _sort_with_name(const census& x1, const census& x2) //城市名按城市的字母先后排序
{
return x1.m_sCityName < x2.m_sCityName;
}
bool _sort_with_people(const census& x1, const census& x2) //城市人口按数的大小排序
{
return x1.m_nCityPeople < x2.m_nCityPeople;
}
bool _sort_with_civilization(const census& x1, const census& x2) //城市人口文化水平按数的大小排序
{
return x1.m_xCivilization < x2.m_xCivilization;
}
int main()
{
std::vector<census> vCity; //数组
//装入数组
{
census x("北京", 1000, 0.99);
vCity.push_back(x);
}
{
census x("云南", 10000, 0.79);
vCity.push_back(x);
}
{
census x("四川", 5000, 0.80);
vCity.push_back(x);
}
{
census x("香港", 900, 0.99);
vCity.push_back(x);
}
{
census x("拉萨", 7000, 0.70);
vCity.push_back(x);
}
//排序
std::sort(vCity.begin(), vCity.end(), _sort_with_name);
//输出
std::cout << "Sort with name of city: " << std::endl << "=====================================" << std::endl;
std::cout << "Name\tPeople\tCivilization" << std::endl;
std::cout << "=====================================" << std::endl;
for(std::vector<census>::iterator it = vCity.begin(); it != vCity.end(); it++){
census x = *it;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 224);
std::cout << x.m_sCityName;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 8);
std::cout << "\t" << x.m_nCityPeople << "\t" << x.m_xCivilization*100 << "%" << std::endl;
}
std::cout << "=====================================" << std::endl;
//排序
std::sort(vCity.begin(), vCity.end(), _sort_with_people);
//输出
std::cout << "Sort with quantity of people: " << std::endl << "=====================================" << std::endl;
std::cout << "Name\tPeople\tCivilization" << std::endl;
std::cout << "=====================================" << std::endl;
for(it = vCity.begin(); it != vCity.end(); it++){
census x = *it;
std::cout << x.m_sCityName << "\t";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 224);
std::cout << x.m_nCityPeople;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 8);
std::cout << "\t" << x.m_xCivilization*100 << "%" << std::endl;
}
std::cout << "=====================================" << std::endl;
//排序
std::sort(vCity.begin(), vCity.end(), _sort_with_people);
//输出
std::cout << "Sort with civilization of people: " << std::endl << "=====================================" << std::endl;
std::cout << "Name\tPeople\tCivilization" << std::endl;
std::cout << "=====================================" << std::endl;
for(it = vCity.begin(); it != vCity.end(); it++){
census x = *it;
std::cout << x.m_sCityName << "\t" << x.m_nCityPeople << "\t";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 224);
std::cout << x.m_xCivilization*100 << "%";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
std::cout << std::endl;
}
system("PAUSE");
return 0;
}