火龙果软件STL精华版.docx
- 文档编号:24677549
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:55
- 大小:27.71KB
火龙果软件STL精华版.docx
《火龙果软件STL精华版.docx》由会员分享,可在线阅读,更多相关《火龙果软件STL精华版.docx(55页珍藏版)》请在冰豆网上搜索。
火龙果软件STL精华版
∙C++标准模板库
oC++Bitsets
oC++Double-EndedQueues
oC++Lists
oC++Maps
oC++Multimaps
oC++Multisets
oC++PriorityQueues
oC++Queues
oC++Sets
oC++Stacks
oC++Vectors
oIterators
C++Bitsets
Constructors
语法:
bitset();
bitset(unsignedlongval);
C++Bitsets能以无参的形式创建,或者提供一个长无符号整数,它将被转化为二进制,然后插入到bitset中。
当创建bitset时,模板中提供的数字决定bitset有多长。
例如,以下代码创建两个bitsets,然后显示它们:
//创建一个8位长的bitset
bitset<8>bs;
//显示这个bitset
for(inti=(int)bs.size();i>=0;i--){
cout< } cout< //创建另一个bitset bitset<8>bs2((long)131); //显示 for(inti=(int)bs2.size();i>=0;i--){ cout< } cout< Operators 语法: ! =,==,&=,^=,|=,~,<<=,>>=,[] 这些操作符都可以和bitsets一起工作。 它们被这样定义: ∙! =返回真如果两个bitset不相等。 ∙==返回真如果两个bitset相等。 ∙&=完成两个bitset间的与运算。 ∙^=完成两个bitset间的异或运算。 ∙|=完成两个 ∙~反置bitset(和调用flip()类似) ∙<<=把bitset向左移动 ∙>>=把bitset向右移动 ∙[x]返回第x个位的引用 例如,以下代码创建一个bitset,然后向左移动4个位: //创建一个bitset bitset<8>bs2((long)131); cout<<"bs2is"< //向左移动4位 bs2<<=4; cout<<"nowbs2is"< 当上述代码运行时,显示: bs2is10000011 nowbs2is00110000 any 语法: boolany(); any()函数返回真如果有位被设置为1,否则返回假。 count 语法: size_typecount(); count()函数bitset中被设置成1的位的个数。 flip 语法: bitset&flip(); bitset&flip(size_tpos); flip()函数反置bitset中所有的位,即将1设为0,0设为1。 如果指定pos,那么只有pos上的位被反置。 相关主题: ~operator none 语法: boolnone(); none()返回真如果没有位被设为1,否则返回假。 reset 语法: bitset&reset(); bitset&reset(size_tpos); reset()重置bitset(全部设为0),如果指定pos,那么只有pos上的位被重置。 set 语法: bitset&set(); bitset&set(size_tpos,intval=1); set()函数设置bitset上所有的位,然后返回bitset。 如果指定pos,那么只有pos上的位被设置。 size 语法: size_tsize(); size()返回bitset能容纳的位。 test 语法: booltest(size_tpos); test()函数返回在pos上的位的值。 to_string 语法: stringto_string(); to_string()函数返回bitset的字符串形式。 to_ulong 语法: unsignedlongto_ulong(); to_ulong()返回bitset的无符号长整数形式。 C++Double-EndedQueues(双向队列) Constructors 语法: deque(); deque(size_typesize); deque(size_typenum,constTYPE&val); deque(constdeque&from); deque(input_iteratorstart,input_iteratorend); C++Deques能用以下方式创建: ∙无参,创建一个空双向队列 ∙size-创建一个大小为size的双向队列 ∙numandval-放置num个val的拷贝到队列中, ∙from-从from创建一个内容一样的双向队列 ∙start和end-创建一个队列,保存从start到end的元素。 例如,下列代码创建并显示一个双向队列: //创建一个双向队列,里面有10个1 dequedq(10,1); //创建一个迭代器 deque: : iteratoriter; //显示这个双向队列 for(iter=dq.begin();iter! =dq.end();iter++){ cout<<*iter< } Operators 语法: [] 你可以使用[]操作符访问双向队列中单个的元素。 assign 语法: voidassign(input_iteratorstart,input_iteratorend); voidassign(Sizenum,constTYPE&val); assign()函数用start和end指示的范围为双向队列赋值,或者设置成num个val。 at 语法: referenceat(size_typepos); at()函数返回一个引用,指向双向队列中位置pos上的元素。 back 语法: referenceback(); back()返回一个引用,指向双向队列中最后一个元素。 begin 语法: iteratorbegin(); begin()函数返回一个迭代器,指向双向队列的第一个元素。 clear 语法: voidclear(); clear()函数删除双向队列中所有元素。 empty 语法: boolempty(); empty()返回真如果双向队列为空,否则返回假。 end 语法: iteratorend(); end()函数返回一个迭代器,指向双向队列的尾部。 erase 语法: iteratorerase(iteratorpos); iteratorerase(iteratorstart,iteratorend); erase()函数删除pos位置上的元素,或者删除start和end之间的所有元素。 返回值是一个iterator,指向被删除元素的后一个元素。 front 语法: referencefront(); front()函数返回一个引用,指向双向队列的头部。 get_allocator 语法: allocator_typeget_allocator(); get_allocator()函数返回双向队列的配置器。 insert 语法: iteratorinsert(iteratorpos,size_typenum,constTYPE&val); voidinsert(iteratorpos,input_iteratorstart,input_iteratorend); insert()在pos前插入num个val值,或者插入从start到end范围内的元素到pos前面。 max_size 语法: size_typemax_size(); max_size()返回双向队列能容纳的最大元素个数。 pop_back 语法: voidpop_back(); pop_back()删除双向队列尾部的元素。 pop_front 语法: voidpop_front(); pop_front()删除双向队列头部的元素。 push_back 语法: voidpush_back(constTYPE&val); push_back()函数在双向队列的尾部加入一个值为val的元素。 push_front 语法: voidpush_front(constTYPE&val); push_front()函数在双向队列的头部加入一个值为val的元素。 rbegin 语法: reverse_iteratorrbegin(); rbegin()返回一个指向双向队列尾部的逆向迭代器。 rend 语法: reverse_iteratorrend(); rend()返回一个指向双向队列头部的逆向迭代器。 resize 语法: voidresize(size_typenum,TYPEval); resize()改变双向队列的大小为num,另加入的元素都被填充为val。 size 语法: size_typesize(); size()函数返回双向队列中的元素个数。 swap 语法: voidswap(deque&target); swap()函数交换target和现双向队列中元素。 C++Lists(链表) 赋值(assign) 语法: voidassign(input_iteratorstart,input_iteratorend); voidassign(size_typenum,constTYPE&val); assign()函数以迭代器start和end指示的范围为list赋值或者为list赋值num个以val为值的元素。 相关主题: insert(), back 语法: referenceback(); back()函数返回一个引用,指向list的最后一个元素。 相关主题: front(),pop_back(), begin 语法: iteratorbegin(); begin()函数返回一个迭代器,指向list的第一个元素。 例如, //创建一个元素类型是字符的链表 list for(inti=0;i<10;i++) charList.push_front(i+65); //显示这个链表 list : iteratortheIterator; for(theIterator=charList.begin();theIterator! =charList.end();theIterator++) cout<<*theIterator; 相关主题: end(), clear 语法: voidclear(); clear()函数删除list的所有元素。 empty 语法: boolempty(); empty()函数返回真(true)如果链表为空,否则返回假。 例如: list for(inti=0;i<10;i++) the_list.push_back(i); while(! the_list.empty()){ cout< the_list.pop_front(); } end 语法: iteratorend(); end()函数返回一个迭代器,指向链表的末尾。 相关主题: begin(), erase 语法: iteratorerase(iteratorpos); iteratorerase(iteratorstart,iteratorend); erase()函数删除以pos指示位置的元素,或者删除start和end之间的元素。 返回值是一个迭代器,指向最后一个被删除元素的下一个元素。 front 语法: referencefront(); front()函数返回一个引用,指向链表的第一个元素。 list for(inti=0;i<10;i++) the_list.push_back(i); while(! the_list.empty()){ cout< the_list.pop_front(); } 相关主题: back(), get_allocator 语法: allocator_typeget_allocator(); get_allocator()函数返回链表的配置器。 insert 语法: iteratorinsert(iteratorpos,constTYPE&val); voidinsert(iteratorpos,size_typenum,constTYPE&val); voidinsert(iteratorpos,input_iteratorstart,input_iteratorend); insert()插入元素val到位置pos,或者插入num个元素val到pos之前,或者插入start到end之间的元素到pos的位置。 返回值是一个迭代器,指向被插入的元素。 max_size 语法: size_typemax_size(); max_size()函数返回链表能够储存的元素数目。 merge 语法: voidmerge(list&lst); voidmerge(list&lst,Compcompfunction); merge()函数把自己和lst链表连接在一起,产生一个整齐排列的组合链表。 如果指定compfunction,则将指定函数作为比较的依据。 pop_back 语法: voidpop_back(); pop_back()函数删除链表的最后一个元素。 相关主题: pop_front(), pop_front 语法: voidpop_front(); pop_front()函数删除链表的第一个元素。 相关主题: pop_back(), push_back 语法: voidpush_back(constTYPE&val); push_back()将val连接到链表的最后。 例如: list for(inti=0;i<10;i++) the_list.push_back(i); 相关主题: push_front(), push_front Syntax: voidpush_front(constTYPE&val); push_front()函数将val连接到链表的头部。 相关主题: push_back(), rbegin 语法: reverse_iteratorrbegin(); rbegin()函数返回一个逆向迭代器,指向链表的末尾。 相关主题: rend(), remove 语法: voidremove(constTYPE&val); remove()函数删除链表中所有值为val的元素。 例如 //创建一个链表,元素是字母表的前10个元素 list for(inti=0;i<10;i++) charList.push_front(i+65); //删除所有'E'的实例 charList.remove('E'); remove_if 语法: voidremove_if(UnPredpr); remove_if()以一元谓词pr为判断元素的依据,遍历整个链表。 如果pr返回true则删除该元素。 rend 语法: reverse_iteratorrend(); rend()函数迭代器指向链表的头部。 resize 语法: voidresize(size_typenum,TYPEval); resize()函数把list的大小改变到num。 被加入的多余的元素都被赋值为val reverse 语法: voidreverse(); reverse()函数把list所有元素倒转。 size 语法: size_typesize(); size()函数返回list中元素的数量。 排序(sort) 语法: voidsort(); voidsort(Compcompfunction); sort()函数为链表排序,默认是升序。 如果指定compfunction的话,就采用指定函数来判定两个元素的大小。 splice 语法: voidsplice(iteratorpos,list&lst); voidsplice(iteratorpos,list&lst,iteratordel); voidsplice(iteratorpos,list&lst,iteratorstart,iteratorend); splice()函数把lst连接到pos的位置。 如果指定其他参数,则插入lst中del所指元素到现链表的pos上,或者用start和end指定范围。 swap 语法: voidswap(list&lst); swap()函数交换lst和现链表中的元素。 unique 语法: voidunique(); voidunique(BinPredpr); unique()函数删除链表中所有重复的元素。 如果指定pr,则使用pr来判定是否删除。 C++Maps C++Maps被用作储存“关键字/值”对 begin 语法: iteratorbegin(); begin()函数返回一个迭代器指向map的第一个元素。 clear 语法: voidclear(); clear()函数删除map中的所有元素。 count 语法: size_typecount(constKEY_TYPE&key); count()函数返回map中键值等于key的元素的个数。 empty 语法: boolempty(); empty()函数返回真(true)如果map为空,否则返回假(false)。 end 语法: iteratorend(); end()函数返回一个迭代器指向map的尾部。 equal_range Syntax: pairequal_range(constKEY_TYPE&key); equal_range()函数返回两个迭代器——一个指向第一个键值为key的元素,另一个指向最后一个键值为key的元素。 erase 语法: voiderase(iteratorpos); voiderase(iteratorstart,iteratorend); size_typeerase(constKEY_TYPE&key); erase()函数删除在pos位置的元素,或者删除在start和end之间的元素,或者删除那些值为key的所有元素。 find 语法: iteratorfind(constKEY_TYPE&key); find()函数返回一个迭代器指向键值为key的元素,如果没找到就返回指向map尾部的迭代器。 get_allocator 语法: allocator_typeget_allocator(); get_allocator()函数返回map的配置器。 insert 语法: iteratorinsert(iteratorpos,constpair voidinsert(input_iteratorstart,input_iteratorend); pair insert()函数: ∙插入val到pos的后面,然后返回一个指向这个元素的迭代器。 ∙插入start到end的元素到map中。 ∙只有在val不存在时插入val。 返回值是一个指向被插入元素的迭代器和一个描述是否插入的bool值。 key_comp 语法: key_comparekey_comp(); key_comp()函数返回一个比较key的函数。 lower_bound 语法: iteratorlower_bound(constKEY_TYPE&key); lower_bound()函数返回一个迭代器,指向map中键值>=key的第一个元素。 max_size 语法: size_typemax_size(); max_size()函数返回map能够保存的最大元素个数。 rbegin 语法: reverse_iteratorrbegin(); rbegin()函数返回一个指向map尾部的逆向迭代器。 re
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 火龙果 软件 STL 精华版