[ת] C/C++ STL֮remove
http://www.cppreference.com/wiki/cn/stl/algorithm/remove
Óï·¨:
#include <algorithm>
forward_iterator remove( forward_iterator start, forward_iterator end, const TYPE& val );
remove Ëã·¨ÒÆ³ý [start,end) ·¶Î§Ö®ÄÚµÄËùÓÐÓë val ÏàµÈµÄÔªËØ¡£
´Ëº¯ÊýµÄ·µ»ØÖµÊÇÒ»¸öµü´úÆ÷£¬ËüÖ¸Ïò²»°üº¬Óë val ÏàµÈµÄÔªËØµÄÐÂÐòÁеÄ×îºóÒ»¸öÔªËØµÄºóÃæ¡£
×¢ÒâremoveµÄʵÏÖͨ³£²¢²»ÕæµÄ´Ó [start, end) ·¶Î§ÄÚÒÆ³ýÔªËØ£»Èç¹ûÔÚÒ»¸öÈÝÆ÷ÉÏÃæµ÷ÓÃremove£¬ÔÚµ÷ÓÃÖ®ºó´ËÈÝÆ÷µÄ³¤¶È²¢²»»á·¢Éú¸Ä±ä£¨Ö»Í¨¹ýiterators£¬remove²¢²»ÄÜÓ°ÏìÈÝÆ÷µÄ³¤¶È£©£¬ËùÓÐÔªËØ»¹ÊÇÁôÔÚÈÝÆ÷ÄÚ¡£È»¶ø£¬remove½«ËùÓб» “removed” µÄÔªËØ·ÅÔÚÈÝÆ÷µÄβ²¿£¬È»ºó·µ»ØÒ»¸öÇø·Öδ±»É¾³ýºÍ±»É¾³ýÔªËØµÄµü´úÆ÷¡£ÎªÁË´ÓÒ»¸öÈÝÆ÷ɾ³ýÔªËØ£¬ÄãÓ¦¸Ãµ÷ÓôËÈÝÆ÷µÄ erase ·½·¨É¾³ý´Ó·µ»ØµÄµü´úÆ÷£¨iterator£©´¦¿ªÊ¼µÄÔªËØ¡£Õâͨ³£±»ÁªºÏÆðÀ´³Æ×÷£ºerase-remove idiom:
container.erase(remove(container.begin(), container.end(), val), container.end());
(container can be of type vector, string or deque)
remove º¯ÊýµÄʱ¼ä¸´ÔÓ¶ÈÊÇÏßÐԵģ¨linear time£©¡£
Ïà¹Ø»°Ì⣺remove_copy, remove_copy_if, remove_if, unique, unique_copy
Ïà¹ØÎĵµ£º
´î½¨eclipse C/C++¿ª·¢»·¾³£º
1¡¢ÏÂÔØ²¢°²×°Eclipse for C++£ºhttp://www.eclipse.org¡£×îаæÊÇ»ùÓÚEclipse 3.5 galileo£¬ÎļþÃûΪeclipse-cpp-galileo-SR1-win32.zip¡£É蹤×÷Ŀ¼ΪD:\workspace_cpp¡£
2¡¢eclipse for C/C++ IDEûÓаüº¬C/C++µÄ±àÒëÆ÷ºÍµ÷ÊÔÆ ......
LinuxÏÂCºÍC++¿ª·¢»ù´¡
»ù±¾±à³Ì¸ÅÄî
n ±à³ÌÓïÑÔ£ºC ¡¢C++
n ±àÒë(compile)£ºÔ´Îļþ£¨.c£©->Ä¿±êÎļþ(.o)
n Á¬½Ó(link)£ºÄ¿±êÎļþ(.o)->¿ÉÖ´ÐÐÎļþ
n ¿â(library)£º¾²Ì¬Á¬½Ó¿â(.a)¡¢¶¯Ì¬Á¬½Ó¿â(.so)
LinuxÏ¿ª·¢¹¤¾ß
n±à¼Æ÷£ºvi¡¢emacs¡¢´°¿Ú±à¼Æ÷
n±àÒëÆ÷£ºGCC
nµ÷ÊÔÆ÷£ºGDB
n¿ÉÖ´ÐÐÎļþ¹¤¾ß£ ......
Ç°ÃæÒ»ÆªÎÒÃǽ²ÁËλÔËËãºó£¬»ù±¾CÓïÑԵĴó¿é¶¼Ìá¼°ÁË£¬Ò»Ð©Ï¸½ÚºÍÓ÷¨ÔÝʱ²»ÔÙ±¾Ä£¿é½éÉÜÁË¡£Ï£ÍûÎÒµÄÐÄÔ¸Äܹ»ÔÚÎÒ±Ïҵ֮ǰ¸øÎҵĴóѧÉúÑÄ»®ÉÏÒ»¸öÔ²ÂúµÄ¾äºÅ¡£¼ÓÓÍŬÁ¦¡£
ÔÚ±¾Ä£¿éµÄµÚÈýƪ¾ÍÒѾ½²ÁË»ù±¾µÄÊý¾ÝÀàÐÍ£¬ÆäÖаѸ¡µãÊý¿ÌÒâÁôÔÚÁ˺óÃæÀ´½éÉÜ¡£ÎÒµÄÀí½âÊÇÔÚÎÒÃÇÀí½âÁËÄڴ棬ָÕ룬λÔËËãµÈºó£¬ÔÙÀ´½éÉܸ¡µãÕâ¸öÌ ......