#include<iostream>
#include<utility>
#include<vector>
#include<string>
using namespace std;
int main(){
string first;
int second;
pair<string,int> t;
vector< pair<string,int> > vec;
while(cin>>first && cin>>second)
{
/*版本一*/
/*t=make_pair(first,second);
vec.push_back(t);*/
/*版本二*/
/*t=pair<string,int>(first,second);
vec.push_back(t);*/
/*版本三*/
t.first=first;
t.second=second;
vec.push_back(t);
}
vector< pair<string,int> >::iterator it=vec.begin();
cout<<"_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*"<<endl;
while(it!=vec.end())
{
cout<<it->first<<"\t"<<it->second<<endl;
it++;
}
return 0;
}
#include<iostream>
#include<map>
#include<string>
using namespace std;
int main(){
string word;
map<string,int> word_count;
while(cin>>word)
++word_count[word];
map<string,int>::const_iterator it=word_count.begin();
while(it!=word_count.end())
{
cout<<it->first<<"\t"<<it->second<<endl;
it++;
}
return 0;
}
#include<iostream>
#include<map>
#include<string>
using namespace std;
int main(){
string word;
map<string,int> word_count;
while(cin>>word)
{
pair<map<string,int>::iterator,bool> ret=word_count.insert(make_pair(word,1));
if(!ret.second)
++ret.first->second;
}
map<string,int>::const_iterator it=word_count.begin();
while(it!=word_count.end())
{
cout<<it->first<<"\t"<<it->second<<endl;
it++;
}
return 0;
}
#include<iostream>
#include<string>
#include<map>
#include<fstream>
#include<sstream>
using namespace std;
int main(){
ifstream infile1("1.txt");
if(!infile1)
{
cout<<"文件1打开失败!"<<endl;
return 1;
}
map<string,string> trans_map;
string word1,word2;
while(infile1>>word1>>word2)
trans_map[word1]=word2;
infile1.close();
ifstream infile("2.txt");
string line;
string word;
while(getline(infile,line))
{
stringstream stream(line);
while(stream>>word)
{
if(trans_map.count(word))
word=trans_map[word];
cout<<word<<" ";
}
cout<<endl;
}
infile.close();
return 0;
}
1.txt
'em them
cuz because
gratz grateful
i I
nah no
pos supposed
sez said
tanx thanks
wuz was
2.txt
nah i sez tanx cuz i wuz pos to
not cuz i wuz gratz
#include<iostream>
#include<map>
#include<string>
#include<vector>
#include<utility>
using namespace std;
int main(){
map< string,vector<string> > children;
string surname,childname;
cout<<"请输入姓氏:";
while(cin>>surname)
{
vector<string> names;
pair< map< string,vector<string> >::iterator,bool > ret=children.insert(make_pair(surname,names));
if(!ret.second)
cout<<"输入的姓氏已存在!"<<endl;
else
{
cout<<"请输入孩子的名字:";
while(cin>>childname)
{
ret.first->second.push_back(childname);
}
}
cout<<"请输入姓氏:";
cin.clear();
}
cin.clear();
cout<<"请输入你想查询的姓氏:";
while(cin>>surname)
{
map<string,vector<string> >::iterator it=children.find(surname);
if(it!=children.end())
{
cout<<"你输入姓氏的孩子为:";
vector<string>::const_iterator iter=it->second.begin();
while(iter!=it->second.end())
{
cout<<*iter++<<"\t";
}
cout<<endl;
}else{
cout<<"你输入的姓氏不存在!"<<endl;
}
cout<<"请输入你想查询的姓氏:";
}
return 0;
}
#include<iostream>
#include<set>
#include<string>
using namespace std;
int main(){
set<string> excluded;
excluded.insert("success");
excluded.insert("class");
string word;
cout<<"请输入以s结尾的单词:";
while(cin>>word)
{
if(!excluded.count(word))
//word[word.size()-1]='\0';
word.resize(word.size()-1);
cout<<"该单词的单数形式为:"<<word<<endl;
cout<<"请输入以s结尾的单词:";
}
return 0;
}
#include<iostream>
#include<set>
#include<vector>
#include<string>
#include<cstdlib>
#include<ctime>
using namespace std;
template <typename T>
void print(T t1,T t2){
while(t1!=t2)
cout<<*t1++<<" ";
cout<<endl;
}
int main(){
string books[]={"数据结构","算法导论","c++primer","c++必知必会","c++本质论","Python","STL源码剖析"};
size_t size=sizeof(books)/sizeof(string);
vector<string> readingBooks(books,books+size);
cout<<"要读的书的集合为:"<<endl;
print(readingBooks.begin(),readingBooks.end());
set<string> readedBooks;
bool timeOver=false;
string answer;
string bookname;
srand((unsigned)time(NULL));
while(!timeOver && !readingBooks.empty())
{
cout<<"你想读书吗?yes/no:";
cin>>answer;
if(answer[0]=='y' ||answer[0]=='Y')
{
int i=rand()%readingBooks.size();
bookname=readingBooks[i];
cout<<"你可以读"<<bookname<<"这本书"<<endl;
readedBooks.insert(bookname);
readingBooks.erase(readingBooks.begin()+i);
cout<<"你想读这本书嘛?yes/no:";
cin>>answer;
if(answer[0]=='n'||answer[0]=='N')
{
readedBooks.erase(bookname);
readingBooks.push_back(bookname);
}
}
cout<<"6个月到了?yes/no:";
cin>>answer;
if(answer[0]=='y'||answer[0]=='Y')
timeOver=true;
}
if(timeOver)
{
cout<<"没有读的书为:"<<endl;
print(readingBooks.begin(),readingBooks.end());
cout<<"已经读的书为:"<<endl;
print(readedBooks.begin(),readedBooks.end());
}else
{
cout<<"你好强,书已经读完了!"<<endl;
}
getchar();
return 0;
}
#include<iostream>
#include<map>
#include<string>
using namespace std;
int main(){
multimap<string,string> authors;
string name,book;
cout<<"请输入姓名 所写书籍"<<endl;
while(cin>>name>>book)
authors.insert(make_pair(name,book));
cout<<"请输入你想查找的作者:";
cin.clear();
while(cin>>name)
{
multimap<string,string>::iterator iter=authors.find(name);
int cnt=authors.count(name);
for(int i=0;i!=cnt;i++,iter++)
cout<<iter->first<<"\t"<<iter->second<<endl;
if(cnt==0)
cout<<"你输入的作者不存在!"<<endl;
else
{
cout<<"删除该作者!"<<endl;
authors.erase(name);
}
cout<<"请输入你想查找的作者:";
}
return 0;
}
#include<iostream>
#include<map>
#include<string>
#include<utility>
using namespace std;
int main(){
multimap<string,string> authors;
string name,book;
cout<<"请输入姓名 所写书籍"<<endl;
while(cin>>name>>book)
authors.insert(make_pair(name,book));
cout<<"请输入你想查找的作者:";
cin.clear();
while(cin>>name)
{
typedef multimap<string,string>::iterator anthors_it;
pair<anthors_it,anthors_it> pos=authors.equal_range(name);
if(pos.first==pos.second)
{
cout<<"你输入的名字不存在!"<<endl;
}else{
while(pos.first!=pos.second)
{
cout<<pos.first->first<<"\t"<<pos.first->second<<endl;
++pos.first;
}
cout<<"删除该作者."<<endl;
authors.erase(name);
}
cout<<"请输入你想查询的作者:";
}
return 0;
}
/*容器的综合应用:文本查询程序*/
#include<iostream>
#include<string>
#include<fstream>
#include<vector>
#include<sstream>
#include<map>
#include<set>
using namespace std;
class TextQuery
{
public:
typedef vector<string>::size_type line_no;
void read_file(ifstream &is)
{
store_file(is);
build_map();
}
set<line_no> run_query(const string&)const;/*单词所在行号*/
string text_line(line_no num)const;/*返回输入文本中该行号对应的文本行*/
private:
void store_file(ifstream &is);/*读入文件,将文件内容存储在vector容器对象*/
void build_map();/*将一行分解为单词,创建map容器对象,同时记录每个单词出现的行号*/
vector<string> lines_of_text;
map<string,set<line_no> > word_map;
};
void TextQuery::store_file(ifstream &is)
{
string line;
while(getline(is,line))
lines_of_text.push_back(line);
}
void TextQuery::build_map()
{
line_no i=0;
string word;
while(i!=lines_of_text.size())
{
istringstream stream(lines_of_text[i]);
while(stream>>word)
{
word_map[word].insert(i);
}
i++;
}
}
set<TextQuery::line_no> TextQuery::run_query(const string& str)const
{
map<string,set<line_no> >::const_iterator it=word_map.find(str);
if(it!=word_map.end())
return it->second;
return set<line_no>();/*没有发现,返回空集合*/
}
string TextQuery::text_line(line_no num)const
{
return lines_of_text[num];
}
void print_results(const set<TextQuery::line_no> &locs,const string &sought,const TextQuery &file)
{
cout<<sought<<"occurs "<<locs.size()<<" times"<<endl;
set<TextQuery::line_no>::const_iterator it=locs.begin();
while(it!=locs.end())
{
cout<<"\t"<<"(line"<<(*it+1)<<") "<<file.text_line(*it)<<endl;
it++;
}
}
int main(){
TextQuery tq;
ifstream infile("1.txt");
if(!infile)
{
cout<<"文件1打开失败!"<<endl;
return 0;
}
tq.read_file(infile);
string s;
while(1)
{
cout<<"输入想查询的单词,输入q结束:";
cin>>s;
if(!cin || s[0]=='q')
break;
set<TextQuery::line_no> locs=tq.run_query(s);
print_results(locs,s,tq);
}
return 0;
}