标签:style blog io ar color os sp for strong
/* 第12章 multiset多重集合容器 12.1 multiset技术原理 12.2 multiset应用基础 12.3 本章小结 */ // 第12章 multiset多重集合容器 // 12.1 multiset技术原理 ---------------------------------------------------------------------------- // 12.2 multiset应用基础 ---------------------------------------------------------------------------- // 192 遍历 #include <set> #include <iostream> int main(void) { using namespace std; multiset < int > ms; ms.insert(10); ms.insert(13); ms.insert(11); ms.insert(19); ms.insert(13); ms.insert(19); ms.insert(19); //打印数据 multiset < int > ::iterator i, iend; iend = ms.end(); for(i = ms.begin(); i != iend; i++) //打印出10 11 13 13 19 19 19 cout << *i << ‘ ‘; cout << endl; return 0; } // 193, 反向遍历 #include <set> #include <iostream> int main(void) { using namespace std; multiset < int > ms; ms.insert(10); ms.insert(13); ms.insert(11); ms.insert(19); ms.insert(13); ms.insert(19); ms.insert(19); //反向遍历打印 multiset < int > ::reverse_iterator ri, riend; riend = ms.rend(); for(ri = ms.rbegin(); ri != riend; ri++) //打印出10 11 13 13 19 19 19 cout << *ri << ‘ ‘; cout << endl; return 0; } // 194 , 要从树的角度去看,相同值的元素在一起的,所以范围容易找 #include <set> #include <iostream> int main(void) { using namespace std; multiset < int > ms; ms.insert(10); ms.insert(13); // ms.insert(11); ms.insert(19); ms.insert(13); // ms.insert(16); ms.insert(13); // ms.insert(17); //find搜索元素13 int v = 19; multiset < int > ::iterator i_v = ms.find(v); cout << *i_v << endl; //equal_range搜索元素13 v = 13; pair < multiset < int > ::iterator, multiset < int > ::iterator > p = ms.equal_range(v); cout << "大于等于" << v << "的第一个元素为(x≥k)为 " << *p.first << endl; cout << "大于" << v << "的第一个元素(x>k)为 " << *p.second << endl; //打印重复键值元素13 multiset < int > ::iterator i; cout << "键值为" << v << "的所有元素为 "; for(i = p.first; i != p.second; i++) //打印出13 13 13 cout << *i << ‘ ‘; cout << "\n\n\n"; return 0; } //196 #include <set> #include <iostream> //学生结构体 struct Student { char *name; int year; char *addr; }; //比较函数 struct StudentLess { bool operator()(const Student &s1, const Student &s2)const { return s1.year < s2.year; //比较学生年龄 } }; int main(void) { using namespace std; //学生数据 Student stuArray[] = { { "李强", 21, "北京" }, { "王文", 22, "浙江" }, { "张天", 21, "上海" }, { "丁宏", 23, "深圳" }, { "赵庆", 30, "天津" } }; //创建multiset对象ms multiset < Student, StudentLess > ms(stuArray, stuArray + 5, StudentLess()); //统计 cout << "学生人数: " << ms.size() << endl << endl; cout << "年龄为21岁的学生人数: " << ms.count(stuArray[0]) << endl << endl; //打印元素 multiset < Student > ::iterator i, iend; iend = ms.end(); cout << "姓名 " << "年龄 " << "地址\n"; for(i = ms.begin(); i != iend; i++) cout << (*i).name << ‘ ‘ << (*i).year << ‘ ‘ << (*i).addr << endl; cout << endl; return 0; } // 12.3 本章小结 ----------------------------------------------------------------------------
标签:style blog io ar color os sp for strong
原文地址:http://www.cnblogs.com/xin-le/p/4111358.html