摘要:find() algorithm一次只能找一個條件,若要同時找多個條件,需使用find_first_of()。
阅读全文
摘要:map迷人之處在於一次存key和value兩個值,且key是唯一的,但若遇到key可重複的情況呢?STL另外提供了multimap...
阅读全文
摘要:大家都體會過sequential container搭配copy() algorithm,只要一行程式就可以將所有值輸出到cout,map這種associative container就無法用這一招,是否有其它方式解決呢?
阅读全文
摘要:STL algorithm中,並沒有copy_if()可用,但可用remove_copy_if()達到要求。
阅读全文
摘要:初學者學unique()會覺得很困擾,發現結果並非unique....
阅读全文
摘要:C++沒提供foreach語法,但提供了for_each() algorithm,這和transform() algorithm有什麼不同呢?
阅读全文
摘要:此範例demo stable_sort()的用法,並且解釋其和sort() algorithm的相異之處。
阅读全文
摘要:STL的Algorithm除了用在STL的Container外,也能用在array喔!!
阅读全文
摘要:stream_iterator除了能用在cin,還可以用在fstream和stringstream,此範例使用stream_iterator搭配copy() algorithm,將文字檔轉到vector,再從vector輸出到文字檔,只需3行程序,STL真是太神奇了。
阅读全文
摘要:使用stream_iterator搭配copy() algorithm,输入到vector,再从vector输出,只需3行程序,STL真是太神奇了。
阅读全文
摘要:此范例demo如何使用STL的queue container,要将数据加进queue时,只要用q.push(item)即可,但要取出数据时,并不是用q.pop(),而是用q.front()取出最前面的数据,q.pop()则是将最前面的数据取出queue,其回传值为void。
阅读全文
摘要:很怀念VB和C#的foreach语法吗?对于C++只能用for语法造成程序冗长觉得很烦吗?foreach的确对于container而言非常好用且精简,C++/CLI已经增加上了for each语法了,事实上,C++也可使用foreach喔,STL提供了for_each() algorithm,可以弥补这个缺憾。
阅读全文
摘要:find()能在container中,尋找單一的值,若找的到,傳回該iterator,若找不到,則傳回container.end()。
阅读全文
摘要:remove()將移除container中所有的指定元素,但基於不改變Contaier size的原則,remove()只是將要移除的元素搬到contaier後面,若要真正移除,還要搭配contaier.erase()。
阅读全文
摘要:std::map提供了两种新增element的方式,一种是c.insert(),和其它container一样,另外一种则是subscripting。
阅读全文
摘要:因为c.begin()是第一个element,但c.end()并不是最后一个element,而是one past the end,所以c.end()并不是iterator.若以符号表示,则是 [first,last)the range begin with first and ends with, but not include, last.Reference C++ Primer 4th P.3...
阅读全文
摘要:实务上并不会用std::vector去模拟std::stack,这是我修C++在Lab上的一个练习,要我们用std::vector去模拟std::stack,还蛮有趣的。
阅读全文
摘要:若要删除std::vector中的element,正规的方式该用find() generic algorithm,若find()找到了,会传回该iterator,若找不到,将传回vector.end()。这种写法远比用for loop干净很多。
阅读全文
摘要:STL中的container各有专长,最常用的是std::vector,可以完全取代array,第二常用的是std::list。std::vector的优点在于non-sequential access超快,新增数据于数据后端超快,但insert和erase任意资料则相当缓慢;std::list则是insert和erase速度超快,但non-sequential access超慢,此范例以实际时间比较vector和list间的优缺点。
阅读全文
摘要:C++的Standard Library並沒有提供將std::string轉成大寫和小寫的功能,只有在提供將char轉成大寫(toupper)和小寫(tolower)的功能而已,在此利用STL的transform配合toupper/tolower,完成std::string轉換大(小)寫的功能,也看到Generics的威力,一個transform function,可以適用於任何型別,且只要自己提供
Algorithm,就可完成任何Transform的動作。
阅读全文