#include<iostream>
#include<vector>
#include<map>
#include<string>
#include<ctime>
#include<algorithm>
using namespace std;
class Print;
class Person
{
public:
Person(int salary,string name);
~Person();
private:
int m_Salary;
string m_Name;
friend void creatPerson(vector<Person>* v);
friend void sortPerson(const vector<Person>& v, multimap<int, Person>* m);
friend class Print;
};
Person::Person(int salary,string name)
{
m_Salary = salary;
m_Name = name;
}
Person::~Person()
{
}
class Print
{
public:
void operator()(const pair<int, Person>& p)
{
cout << "编号"<<p.first<<"\t工资" << p.second.m_Salary << "\t姓名" << p.second.m_Name << endl;
}
};
void creatPerson(vector<Person>* v)
{
char nameSeed[10] = { 'A','B','C','D','E','F','G','H','I','J'};
for (int i = 0; i < 10; i++)
{
v->push_back( Person (0, (const char*)nameSeed[i]) );
}
}
void sortPerson(const vector<Person>& v, multimap<int, Person>* m)
{
int id;
for (int i = 0; i < 10; i++)
{
id=rand() % 3 + 1;//1`3
m->insert(make_pair(id, v[i]));
}
}
int main()
{
vector<Person>v;
creatPerson(&v);
cout<<v.size()<<v.empty() ;
multimap<int, Person>m;
sortPerson(v, &m);
for_each(m.begin(),m.end(),Print());
}
51 行修改,要取 字符数组,不能取 字符转换,参考如下:
#include<iostream>
#include<vector>
#include<map>
#include<string>
#include<ctime>
#include<algorithm>
using namespace std;
class Print;
class Person
{
public:
Person(int salary,string name);
~Person();
private:
int m_Salary;
string m_Name;
friend void creatPerson(vector<Person>* v);
friend void sortPerson(const vector<Person>& v, multimap<int, Person>* m);
friend class Print;
};
Person::Person(int salary,string name)
{
m_Salary = salary;
m_Name = name;
}
Person::~Person()
{
}
class Print
{
public:
void operator()(const pair<int, Person>& p)
{
cout << "编号"<<p.first<<"\t工资" << p.second.m_Salary << "\t姓名" << p.second.m_Name << endl;
}
};
void creatPerson(vector<Person>* v)
{
char nameSeed[10] = { 'A','B','C','D','E','F','G','H','I','J'};
for (int i = 0; i < 10; i++)
{
v->push_back(Person (0, (const char*)nameSeed)); // 修改
}
}
void sortPerson(const vector<Person>& v, multimap<int, Person>* m)
{
int id;
for (int i = 0; i < 10; i++)
{
id=rand() % 3 + 1;//1`3
m->insert(make_pair(id, v[i]));
}
}
int main()
{
vector<Person>v;
creatPerson(&v);
cout<<v.size()<<v.empty() ;
multimap<int, Person>m;
sortPerson(v, &m);
for_each(m.begin(),m.end(),Print());
}
#include<iostream>
#include<vector>
using namespace std;
void output(vector<int> m_list)
{
for ( vector<int>::iterator it=m_list.begin(); it != m_list.end(); ++it) {
cout<<*it<<endl;
}
}
int main()
{
vector<int> v(10);
for (int var = 0; var < 10; ++var) {
v[var] = var;
}
output(v);
vector<int>::iterator it_begin=v.begin();
vector<int>::iterator it_end=v.end();
vector<int>::iterator it_mid=v.begin()+(it_end-it_begin)/2;
int number;
cin>>number;
while( it_begin < it_end){
if(number < *it_mid){
it_end = it_mid;
}else if(number > *it_mid){
it_begin = it_mid+1;
}else{
break;
}
it_mid = it_begin + (it_end - it_begin)/2;
}
if(number == *it_mid)
cout<<"find"<<endl;
else
cout<<"oh no!"<<endl;
return 0;
}