设为首页 加入收藏

TOP

C++ STL set常用函数大全(二)
2015-11-21 01:00:13 来源: 作者: 【 】 浏览:4
Tags:STL set 常用 函数 大全
= b) return a > b; else return a > b; } }; int main() { set s; //采用比较函数mycomp s.insert(5); //第一次插入5,可以插入 s.insert(1); s.insert(6); s.insert(3); s.insert(5); //第二次插入5,重复元素,不会插入 set ::iterator it; for(it = s.begin(); it != s.end(); it++) cout << *it << " "; cout << endl; return 0; } /* 运行结果:6 5 3 1 */

(2)如果元素是结构体,那么可以直接把比较函数写在结构体内。

?

#include
                        
                         
#include
                         
                           #include
                          
                            using namespace std; struct Info { string name; double score; bool operator < (const Info &a) const // 重载“<”操作符,自定义排序规则 { //按score由大到小排序。如果要由小到大排序,使用“>”即可。 return a.score < score; } }; int main() { set
                           
                             s; Info info; //插入三个元素 info.name = "Jack"; info.score = 80; s.insert(info); info.name = "Tom"; info.score = 99; s.insert(info); info.name = "Steaven"; info.score = 60; s.insert(info); set
                            
                             ::iterator it; for(it = s.begin(); it != s.end(); it++) cout << (*it).name << " : " << (*it).score << endl; return 0; } /* 运行结果: Tom : 99 Jack : 80 Steaven : 60 */
                            
                           
                          
                         
                        


?

?

?

?

?

?

集合的用法
?

#include 
                        
                         
#include 
                         
                           #include 
                          
                            using namespace std; int main() { int a[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8 }; set
                           
                             S( a, a + 9 ); int b[] = { 3, 6, 8, 9 }; set
                            
                              S2( b, b + 4 ); set
                             
                              ::iterator site; set
                              
                                Su; set
                               
                                 Si; set
                                
                                  Sd; set
                                 
                                   Ssd; //交集 set_intersection( S.begin(), S.end(), S2.begin(), S2.end(), inserter( Si, Si.begin() ) ); //并集 set_union( S.begin(), S.end(), S2.begin(), S2.end(), inserter( Su, Su.begin() ) ); //差集 set_difference( S.begin(), S.end(), S2.begin(), S2.end(), inserter( Sd, Sd.begin() ) ); //对称差集 set_symmetric_difference( S.begin(), S.end(), S2.begin(), S2.end(), inserter( Ssd, Ssd.begin() ) ); site = Si.begin(); cout<<"the intersection of S and S2 is : "; while( site != Si.end() ) { cout<< *site <<" "; ++ site; } cout<
                                  
                                 
                                
                               
                              
                             
                            
                           
                          
                         
                        
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++实现费马小定理素数测试 下一篇hdu1115 Lifting the Stone(几何..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: