标签:拷贝 替换 统计 排序 c++提高5 stl算法 :查找
【本文谢绝转载】
<大纲> STL 算法 查找算法 adjacent_find()查找容器中重复元素的首地址 distance()根据迭代器,返回元素的下标 binary_search()二分查找:在有序的序列 find 查找函数 find_if 自定义查找函数 统计算法 count 返回容器中相同元素的个数 cout_if 统计大于3的元素个数 排序算法 marge()对两个有序容器组合到另一个容器 sort 自定义排序 random_shuffle 随机洗牌 基本数据类型 random_shuffle 随机洗牌 非基本数据类型 reverse逆序string: reverse基本数据类型的逆序 拷贝算法: 容器1元素拷贝到容器2 替换算法: replace()把元素为3 全部替换成8 replace_if()把大于等于5的全部换成8 swap容器交换 算术运算: accumylate 对指定范围内的元素求和,然后结果再加上一个由value的初始值 fill 将输入值赋值给标志范围内的所有元素 集合算法: set_union联合 并集操作 STL案例: 学校演讲比赛介绍 需求分析 实现思路 参考程序
STL 算法
查找算法
adjacent_find()查找容器中重复元素的首地址
distance()根据迭代器,返回元素的下标
chunli@http://990487026.blog.51cto.com~/c++$ cat stl_04.cpp #include <iostream> #include <string.h> using namespace std; #include <string> #include <vector> #include <list> #include <set> #include <algorithm> #include <functional> #include <iterator> int main() { vector<int> v1; v1.push_back(1); v1.push_back(3); v1.push_back(3); v1.push_back(5); vector<int>::iterator it = adjacent_find(v1.begin(),v1.end()); //查找容器中重复元素的位置 if(it == v1.end()) { cout << "没有重复的元素\n"; } else { cout << "找到重复的元素 " << *it << endl; int index = distance(v1.begin(),it); cout << "元素下标的位置是 " << index << endl; } return 0; } chunli@http://990487026.blog.51cto.com~/c++$ g++ -g -o run stl_04.cpp && ./run 找到重复的元素 3 元素下标的位置是 1 chunli@http://990487026.blog.51cto.com~/c++$
binary_search()二分查找:在有序的序列
chunli@http://990487026.blog.51cto.com~/c++$ cat stl_04.cpp #include <iostream> #include <string.h> using namespace std; #include <string> #include <vector> #include <list> #include <set> #include <algorithm> #include <functional> #include <iterator> int main() { vector<int> v1; v1.push_back(1); v1.push_back(3); v1.push_back(5); v1.push_back(6); v1.push_back(7); v1.push_back(8); v1.push_back(9); bool b = binary_search(v1.begin(),v1.end(),7); if(b == false) { cout << "没找到\n"; } else { cout << "找到了\n"; } return 0; } chunli@http://990487026.blog.51cto.com~/c++$ g++ -g -o run stl_04.cpp && ./run 找到了 chunli@http://990487026.blog.51cto.com~/c++$
统计算法
count 返回容器中相同元素的个数
chunli@http://990487026.blog.51cto.com~/c++$ cat stl_04.cpp #include <iostream> #include <string.h> using namespace std; #include <string> #include <vector> #include <list> #include <set> #include <algorithm> #include <functional> #include <iterator> int main() { vector<int> v1; v1.push_back(1); v1.push_back(3); v1.push_back(7); v1.push_back(6); v1.push_back(7); int n = count(v1.begin(),v1.end(),7); cout << n << endl; return 0; } chunli@http://990487026.blog.51cto.com~/c++$ g++ -g -o run stl_04.cpp && ./run 2 chunli@http://990487026.blog.51cto.com~/c++$
cout_if 统计大于3的元素个数
chunli@http://990487026.blog.51cto.com~/c++$ cat stl_04.cpp #include <iostream> #include <string.h> using namespace std; #include <string> #include <vector> #include <list> #include <set> #include <algorithm> #include <functional> #include <iterator> bool myfun(int i) { if(i > 3) { return true; } else { return false; } } int main() { vector<int> v1; v1.push_back(1); v1.push_back(3); v1.push_back(7); v1.push_back(6); v1.push_back(7); int n = count_if(v1.begin(),v1.end(),myfun); cout << n << endl; return 0; } chunli@http://990487026.blog.51cto.com~/c++$ g++ -g -o run stl_04.cpp && ./run 3 chunli@http://990487026.blog.51cto.com~/c++$
find,find_if 自定义查找函数
chunli@http://990487026.blog.51cto.com~/c++$ cat stl_04.cpp #include <iostream> #include <string.h> using namespace std; #include <string> #include <vector> #include <list> #include <set> #include <algorithm> #include <functional> #include <iterator> bool myfun(int i) { if(i > 3) { return true; } else { return false; } } int main() { vector<int> v1; v1.push_back(1); v1.push_back(3); v1.push_back(666); v1.push_back(6); v1.push_back(9); vector<int>::iterator it = find(v1.begin(),v1.end(),3); //查找等于3的元素 if(it != v1.end()) { cout << *it << endl; } else { cout << "not find! \n"; } vector<int>::iterator it2 = find_if(v1.begin(),v1.end(),myfun); //返回容器中第一个比3大的元素 if(it2 != v1.end()) { cout << *it2 << endl; } else { cout << "not find! \n"; } return 0; } chunli@http://990487026.blog.51cto.com~/c++$ g++ -g -o run stl_04.cpp && ./run 3 666 chunli@http://990487026.blog.51cto.com~/c++$
排序算法
marge()对两个有序容器组合到另一个容器
chunli@http://990487026.blog.51cto.com~/c++$ cat stl_04.cpp #include <iostream> #include <string.h> using namespace std; #include <string> #include <vector> #include <list> #include <set> #include <algorithm> #include <functional> #include <iterator> int main() { vector<int> v1; v1.push_back(1); v1.push_back(3); v1.push_back(5); v1.push_back(7); v1.push_back(9); vector<int> v2; v2.push_back(2); v2.push_back(4); v2.push_back(6); v2.push_back(8); v2.push_back(10); vector<int> v3; v3.resize(v1.size() + v2.size()); merge(v1.begin(),v1.end(),v2.begin(),v2.end(),v3.begin()); for(vector<int>::iterator it = v3.begin();it != v3.end();it++) { cout << *it << " " ; } cout << endl; return 0; } chunli@http://990487026.blog.51cto.com~/c++$ g++ -g -o run stl_04.cpp && ./run 1 2 3 4 5 6 7 8 9 10 chunli@http://990487026.blog.51cto.com~/c++$
sort 自定义排序
chunli@http://990487026.blog.51cto.com~/c++$ cat stl_04.cpp #include <iostream> #include <string.h> using namespace std; #include <string> #include <vector> #include <list> #include <set> #include <algorithm> #include <functional> #include <iterator> #include<numeric> class Student { public: Student(string name,int id) { m_name = name; m_id = id; } string m_name; int m_id; }; //GCC 必须带上const bool CompareS(const Student &s1,const Student &s2) { return(s1.m_id < s2.m_id); } int main() { Student s1("老大",44); Student s2("老二",33); Student s3("老三",22); Student s4("老四",11); vector<Student> v1; v1.push_back(s4); v1.push_back(s1); v1.push_back(s3); v1.push_back(s2); cout << "排序前\n"; for(vector<Student>::iterator it = v1.begin();it != v1.end();it++) { cout << it->m_id << " "<< it->m_name << "\n"; } sort(v1.begin(),v1.end(),CompareS); cout << "\n排序后\n"; for(vector<Student>::iterator it = v1.begin();it != v1.end();it++) { cout << it->m_id << " "<< it->m_name << "\n"; } return 0; } chunli@http://990487026.blog.51cto.com~/c++$ g++ -g -o run stl_04.cpp && ./run 排序前 11 老四 44 老大 22 老三 33 老二 排序后 11 老四 22 老三 33 老二 44 老大 chunli@http://990487026.blog.51cto.com~/c++$
random_shuffle 随机洗牌 基本数据类型
chunli@http://990487026.blog.51cto.com~/c++$ cat stl_05.cpp #include <iostream> #include <string.h> using namespace std; #include <string> #include <vector> #include <list> #include <set> #include <algorithm> #include <functional> #include <iterator> #include<numeric> int main() { vector<int> v1; v1.push_back(1); v1.push_back(2); v1.push_back(3); v1.push_back(4); v1.push_back(5); v1.push_back(6); v1.push_back(7); v1.push_back(8); cout << "洗牌之前 \n"; for(vector<int>::iterator it = v1.begin();it != v1.end();it++) { cout << *it << " "; } cout << "\n\n洗牌之后 \n"; random_shuffle(v1.begin(),v1.end()); for(vector<int>::iterator it = v1.begin();it != v1.end();it++) { cout << *it << " "; } cout << endl; return 0; } chunli@http://990487026.blog.51cto.com~/c++$ g++ -g -o run stl_05.cpp && ./run 洗牌之前 1 2 3 4 5 6 7 8 洗牌之后 5 4 8 7 1 6 3 2 chunli@http://990487026.blog.51cto.com~/c++$
random_shuffle 随机洗牌 非基本数据类型
chunli@http://990487026.blog.51cto.com~/c++$ cat stl_05.cpp #include <iostream> #include <string.h> using namespace std; #include <string> #include <vector> #include <list> #include <set> #include <algorithm> #include <functional> #include <iterator> #include<numeric> int main() { string s1 = "abcdefg"; cout << s1 << endl; random_shuffle(s1.begin(),s1.end()); cout << s1 << endl; return 0; } chunli@http://990487026.blog.51cto.com~/c++$ g++ -g -o run stl_05.cpp && ./run abcdefg edbgafc chunli@http://990487026.blog.51cto.com~/c++$
reverse逆序:
chunli@http://990487026.blog.51cto.com~/c++$ cat stl_05.cpp #include <iostream> #include <string.h> using namespace std; #include <string> #include <vector> #include <list> #include <set> #include <algorithm> #include <functional> #include <iterator> #include<numeric> int main() { string s1 = "abcdefg"; cout << s1 << endl; reverse(s1.begin(),s1.end()); cout << s1 << endl; return 0; } chunli@http://990487026.blog.51cto.com~/c++$ g++ -g -o run stl_05.cpp && ./run abcdefg gfedcba chunli@http://990487026.blog.51cto.com~/c++$
reverse基本数据类型的逆序
chunli@http://990487026.blog.51cto.com~/c++$ cat stl_06.cpp #include <iostream> #include <string.h> using namespace std; #include <string> #include <vector> #include <list> #include <set> #include <algorithm> #include <functional> #include <iterator> #include<numeric> int main() { vector<int> v1; v1.push_back(1); v1.push_back(2); v1.push_back(3); v1.push_back(4); v1.push_back(5); v1.push_back(6); v1.push_back(7); v1.push_back(8); cout << "洗牌之前 \n"; for(vector<int>::iterator it = v1.begin();it != v1.end();it++) { cout << *it << " "; } cout << "\n\n洗牌之后 \n"; reverse(v1.begin(),v1.end()); for(vector<int>::iterator it = v1.begin();it != v1.end();it++) { cout << *it << " "; } cout << endl; return 0; } chunli@http://990487026.blog.51cto.com~/c++$ g++ -g -o run stl_06.cpp && ./run 洗牌之前 1 2 3 4 5 6 7 8 洗牌之后 8 7 6 5 4 3 2 1 chunli@http://990487026.blog.51cto.com~/c++$
拷贝算法:容器1元素拷贝到容器2
chunli@http://990487026.blog.51cto.com~/c++$ cat stl_06.cpp #include <iostream> #include <string.h> using namespace std; #include <string> #include <vector> #include <list> #include <set> #include <algorithm> #include <functional> #include <iterator> #include<numeric> int main() { vector<int> v1; v1.push_back(1); v1.push_back(2); v1.push_back(3); v1.push_back(4); v1.push_back(5); v1.push_back(6); v1.push_back(7); v1.push_back(8); vector<int> v2; v2.resize(v1.size() ); copy(v1.begin(),v1.end(),v2.begin()); for(vector<int>::iterator it = v2.begin();it != v2.end();it++) { cout << *it << " "; } cout << endl; return 0; } chunli@http://990487026.blog.51cto.com~/c++$ g++ -g -o run stl_06.cpp && ./run 1 2 3 4 5 6 7 8 chunli@http://990487026.blog.51cto.com~/c++$
replace()替换算法:把元素为3 全部替换成8
chunli@http://990487026.blog.51cto.com~/c++$ cat stl_06.cpp #include <iostream> #include <string.h> using namespace std; #include <string> #include <vector> #include <list> #include <set> #include <algorithm> #include <functional> #include <iterator> #include<numeric> int main() { vector<int> v1; v1.push_back(1); v1.push_back(2); v1.push_back(3); v1.push_back(4); v1.push_back(5); v1.push_back(3); v1.push_back(7); v1.push_back(8); replace(v1.begin(),v1.end(),3,8); for(vector<int>::iterator it = v1.begin();it != v1.end();it++) { cout << *it << " "; } cout << endl; return 0; } chunli@http://990487026.blog.51cto.com~/c++$ g++ -g -o run stl_06.cpp && ./run 1 2 8 4 5 8 7 8 chunli@http://990487026.blog.51cto.com~/c++$
replace_if()把大于等于5的全部换成8
chunli@http://990487026.blog.51cto.com~/c++$ cat stl_06.cpp #include <iostream> #include <string.h> using namespace std; #include <string> #include <vector> #include <list> #include <set> #include <algorithm> #include <functional> #include <iterator> #include<numeric> bool myfun(int n) { return (n >= 5); } int main() { vector<int> v1; v1.push_back(1); v1.push_back(2); v1.push_back(3); v1.push_back(4); v1.push_back(5); v1.push_back(3); v1.push_back(7); v1.push_back(8); replace(v1.begin(),v1.end(),3,8); for(vector<int>::iterator it = v1.begin();it != v1.end();it++) { cout << *it << " "; } cout << endl; replace_if(v1.begin(),v1.end(),myfun,8); for(vector<int>::iterator it = v1.begin();it != v1.end();it++) { cout << *it << " "; } cout << endl; return 0; } chunli@http://990487026.blog.51cto.com~/c++$ g++ -g -o run stl_06.cpp && ./run 1 2 8 4 5 8 7 8 1 2 8 4 8 8 8 8 chunli@http://990487026.blog.51cto.com~/c++$
swap容器交换
chunli@http://990487026.blog.51cto.com~/c++$ cat stl_06.cpp #include <iostream> #include <string.h> using namespace std; #include <string> #include <vector> #include <list> #include <set> #include <algorithm> #include <functional> #include <iterator> #include<numeric> void ptint(vector<int> &v1) { for(vector<int>::iterator it = v1.begin();it != v1.end();it++) { cout << *it << " "; } cout << endl; } int main() { vector<int> v1; v1.push_back(1); v1.push_back(2); v1.push_back(3); vector<int> v2; v2.push_back(2); v2.push_back(4); v2.push_back(6); ptint(v1); ptint(v2); cout << "\n交换\n"; swap(v1,v2); ptint(v1); ptint(v2); return 0; } chunli@http://990487026.blog.51cto.com~/c++$ g++ -g -o run stl_06.cpp && ./run 1 2 3 2 4 6 交换 2 4 6 1 2 3 chunli@http://990487026.blog.51cto.com~/c++$
算术运算
accumylate 对指定范围内的元素求和,然后结果再加上一个由value的初始值
chunli@http://990487026.blog.51cto.com~/c++$ cat stl_06.cpp #include <iostream> #include <string.h> using namespace std; #include <string> #include <vector> #include <list> #include <set> #include <algorithm> #include <functional> #include <iterator> #include<numeric> int main() { vector<int> v1; v1.push_back(1); v1.push_back(2); v1.push_back(3); int sum = accumulate(v1.begin(),v1.end(),100); cout << sum << endl; return 0; } chunli@http://990487026.blog.51cto.com~/c++$ g++ -g -o run stl_06.cpp && ./run 106 chunli@http://990487026.blog.51cto.com~/c++$
fill 将输入值赋值给标志范围内的所有元素
chunli@http://990487026.blog.51cto.com~/c++$ !cat cat stl_06.cpp #include <iostream> #include <string.h> using namespace std; #include <string> #include <vector> #include <list> #include <set> #include <algorithm> #include <functional> #include <iterator> #include<numeric> void print(vector<int> &v1) { for(vector<int>::iterator it = v1.begin();it != v1.end();it++) { cout << *it << " "; } cout << endl; } int main() { vector<int> v1; v1.push_back(1); v1.push_back(2); v1.push_back(3); fill(v1.begin(),v1.end(),100); print(v1); return 0; } chunli@http://990487026.blog.51cto.com~/c++$ g++ -g -o run stl_06.cpp && ./run 100 100 100 chunli@http://990487026.blog.51cto.com~/c++$
集合操作,set_union联合
chunli@http://990487026.blog.51cto.com~/c++$ cat stl_06.cpp #include <iostream> #include <string.h> using namespace std; #include <string> #include <vector> #include <list> #include <set> #include <algorithm> #include <functional> #include <iterator> #include<numeric> void print(vector<int> &v1) { for(vector<int>::iterator it = v1.begin();it != v1.end();it++) { cout << *it << " "; } cout << endl; } int main() { vector<int> v1; v1.push_back(1); v1.push_back(6); v1.push_back(3); vector<int> v2; v2.push_back(4); v2.push_back(5); v2.push_back(2); vector<int> v3; v3.resize(v1.size() + v2.size() ); set_union(v1.begin(),v1.end(),v2.begin(),v2.end(),v3.begin() ); print(v3); return 0; } chunli@http://990487026.blog.51cto.com~/c++$ g++ -g -o run stl_06.cpp && ./run 1 4 5 2 6 3 chunli@http://990487026.blog.51cto.com~/c++$
STL案例:
学校演讲比赛介绍
1)某市举行一场演讲比赛( speech_contest ),共有24个人参加。比赛共三轮,前两轮为淘汰赛,第三轮为决赛。
2)比赛方式:分组比赛,每组6个人;选手每次要随机分组,进行比赛;
第一轮分为4个小组,每组6个人。比如100-105为一组,106-111为第二组,依次类推,
每人分别按照抽签(draw)顺序演讲。当小组演讲完后,淘汰组内排名最后的三个选手,然后继续下一个小组的比赛。
第二轮分为2个小组,每组6人。比赛完毕,淘汰组内排名最后的三个选手,然后继续下一个小组的比赛。
第三轮只剩下6个人,本轮为决赛,选出前三名。
4)比赛评分:10个评委打分,去除最低、最高分,求平均分
每个选手演讲完由10个评委分别打分。该选手的最终得分是去掉一个最高分和一个最低分,求得剩下的8个成绩的平均分。
选手的名次按得分降序排列,若得分一样,按参赛号升序排名。
用STL编程,求解这个问题
1) 请打印出所有选手的名字与参赛号,并以参赛号的升序排列。
2) 打印每一轮比赛后,小组比赛成绩和小组晋级名单
3) 打印决赛前三名,选手名称、成绩。
需求分析:
产生选手 ( ABCDEFGHIJKLMNOPQRSTUVWXYZ ) 姓名、得分;选手编号
第1轮 选手抽签 选手比赛 查看比赛结果
第2轮 选手抽签 选手比赛 查看比赛结果
第3轮 选手抽签 选手比赛 查看比赛结果
实现思路
需要把选手信息、选手得分信息、选手比赛抽签信息、选手的晋级信息保存在容器中,需要涉及到各个容器的选型。(相当于信息的数据库E-R图设计)
选手可以设计一个类Speaker(姓名和得分)
所有选手编号和选手信息,可以放在容器内:map<int, Speaker>
所有选手的编号信息,可以放在容器:vecter<int> v1中
第1轮晋级名单,可以放在容器vecter<int> v2中
第2轮晋级名单,可以放在容器vecter<int> v3中
第3轮前三名名单,可以放在容器vecter<int> v4中
每个小组的比赛得分信息,按照从小到大的顺序放在
multimap<成绩, 编号, greater<int>> multmapGroup
也就是:multimap<int, int, greater<int> > multmapGroup;
参考程序
chunli@http://990487026.blog.51cto.com~/c++$ cat main.cpp //STL常用算法 #include <iostream> #include <string.h> using namespace std; #include <string> #include <vector> #include <deque> #include <list> #include <map> #include <set> #include <algorithm> #include <functional> #include <numeric> #include <time.h> class Speaker { public: string m_name; int m_score[3]; }; //生成选手,参加比赛的名单 int GenSpeaker(map<int,Speaker> &mapSpeaker,vector<int> &v) { string str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; random_shuffle(str.begin(),str.end()); //打乱字符串的顺序 for(int i = 0;i<24;i++) { Speaker tmp; tmp.m_name = "选手"; tmp.m_name = tmp.m_name + str[i]; mapSpeaker.insert(pair<int,Speaker>(100 + i,tmp)); } for(int i = 0;i<24;i++) { v.push_back(100 + i); } return 0; } //选手抽签 int speaker_contest_draw(vector<int> &v) { random_shuffle(v.begin(),v.end()); } //选手比赛 int speaker_contest(int index,vector<int>&v1,map<int,Speaker> &mapSpeaker,vector<int> &v2) { srand((unsigned int)time(NULL)); //随机数种子 //小组比赛得分,记录下来 multimap<int,int,greater<int> > multmpGroup;//选手分数编号,从小到大排序 //为每个选手模拟打分 int count = 0; int team_num = 0; for(vector<int>::iterator it = v1.begin();it != v1.end();it++) { count ++; deque<int> dscore ; //用来接收10个评委的分数 for(int j = 0;j<10;j++) //10个评委 { int score = rand() %100;//模拟打分 dscore.push_back(score); } sort(dscore.begin(),dscore.end()); dscore.pop_front(); //去除最高分 最低分 dscore.pop_back(); int score_sum = accumulate(dscore.begin(),dscore.end(),0); int score_avg = score_sum/dscore.size(); //计算平均分 //把分数计入第x位选手的第y轮的score记录中 mapSpeaker[*it].m_score[index] = score_avg; //按照分数,编号存储 multmpGroup.insert(pair<int ,int> (score_avg,*it) ); if(count % 6 == 0) //如果能被6整除,就是一个小组 { team_num ++; cout << "第"<< index+1 << "轮第" << team_num<<"小组的6位选手比赛成绩\n"; cout << "编号\t姓名\t得分\n"; for(multimap<int,int,greater<int> >:: iterator mit = multmpGroup.begin(); mit != multmpGroup.end();mit ++) { //编号,姓名,得分 cout << mit->second << "\t" << mapSpeaker[mit->second].m_name << "\t" << mit->first<< endl; } //把前三名放到v2 晋级名单中 while(multmpGroup.size() > 3) { multimap<int,int,greater<int> >:: iterator it1 = multmpGroup.begin(); v2.push_back(it1->second); multmpGroup.erase(it1); } multmpGroup.clear(); //清除本小组的 比赛成绩 } } return 0; } int speech_contest_prinrt(int index,vector<int> &v,map<int,Speaker> &mapSpeaker) { cout << "\n第"<<index + 1<<"轮晋级名单\n";; for(vector<int>::iterator it = v.begin();it != v.end();it++) { cout << "参赛编号:" << *it << "\t" << mapSpeaker[*it].m_name << "\t" << mapSpeaker[*it].m_score[index] << endl; } cout << "------------------------------------\n"; return 0; } int main() { map<int,Speaker> mapSpeaker; vector<int> v1; //第1轮选手名单 vector<int> v2; //第2轮选手名单 vector<int> v3; //第3轮选手名单 vector<int> v4; //获奖名单 GenSpeaker(mapSpeaker,v1); ////生成选手,参加比赛的名单 //第1轮选手抽签,比赛,查看成绩 speaker_contest_draw(v1); //选手抽签 speaker_contest(0,v1,mapSpeaker,v2); //开始比赛 speech_contest_prinrt(0,v2,mapSpeaker); //第2轮选手抽签,比赛,查看成绩 speaker_contest_draw(v2); //选手抽签 speaker_contest(1,v2,mapSpeaker,v3); speech_contest_prinrt(1,v3,mapSpeaker); //第3轮选手抽签,比赛,查看成绩 speaker_contest_draw(v3); //选手抽签 speaker_contest(2,v3,mapSpeaker,v4); speech_contest_prinrt(2,v4,mapSpeaker); return 0; } chunli@http://990487026.blog.51cto.com~/c++$ g++ -g -o run main.cpp && ./run 第1轮第1小组的6位选手比赛成绩 编号 姓名 得分 118 选手N 60 114 选手A 59 102 选手L 53 106 选手R 52 107 选手B 50 113 选手C 43 第1轮第2小组的6位选手比赛成绩 编号 姓名 得分 103 选手P 72 117 选手S 60 100 选手E 46 110 选手D 46 115 选手X 46 109 选手J 43 第1轮第3小组的6位选手比赛成绩 编号 姓名 得分 108 选手G 62 104 选手Y 57 101 选手K 56 112 选手T 48 111 选手W 42 105 选手Q 38 第1轮第4小组的6位选手比赛成绩 编号 姓名 得分 119 选手I 62 123 选手M 52 121 选手V 52 122 选手H 52 120 选手F 42 116 选手Z 40 第1轮晋级名单 参赛编号:118 选手N 60 参赛编号:114 选手A 59 参赛编号:102 选手L 53 参赛编号:103 选手P 72 参赛编号:117 选手S 60 参赛编号:100 选手E 46 参赛编号:108 选手G 62 参赛编号:104 选手Y 57 参赛编号:101 选手K 56 参赛编号:119 选手I 62 参赛编号:123 选手M 52 参赛编号:121 选手V 52 ------------------------------------ 第2轮第1小组的6位选手比赛成绩 编号 姓名 得分 102 选手L 60 103 选手P 59 101 选手K 53 117 选手S 52 119 选手I 50 114 选手A 43 第2轮第2小组的6位选手比赛成绩 编号 姓名 得分 121 选手V 72 108 选手G 60 118 选手N 46 104 选手Y 46 100 选手E 46 123 选手M 43 第2轮晋级名单 参赛编号:102 选手L 60 参赛编号:103 选手P 59 参赛编号:101 选手K 53 参赛编号:121 选手V 72 参赛编号:108 选手G 60 参赛编号:118 选手N 46 ------------------------------------ 第3轮第1小组的6位选手比赛成绩 编号 姓名 得分 101 选手K 60 102 选手L 59 103 选手P 53 118 选手N 52 108 选手G 50 121 选手V 43 第3轮晋级名单 参赛编号:101 选手K 60 参赛编号:102 选手L 59 参赛编号:103 选手P 53 ------------------------------------ chunli@http://990487026.blog.51cto.com~/c++$
本文出自 “魂斗罗” 博客,请务必保留此出处http://990487026.blog.51cto.com/10133282/1828218
C++提高5 STL算法 :查找,统计,排序,拷贝,替换,算术,集合 |STL 案例:学校演讲比赛介绍
标签:拷贝 替换 统计 排序 c++提高5 stl算法 :查找
原文地址:http://990487026.blog.51cto.com/10133282/1828218