¤È¤¢¤ë½¸ÃÄ¤Î¥×¥í¥°¥é¥à¥á¥â

Ï¢ÁÛ¥³¥ó¥Æ¥Ê

  • set, map, ( multiset, multimap)

´ðËÜŪ¤Ê»ÈÍÑÊýË¡

Àë¸À

std::set< val> tSet);
std::map< key_type, mapped_type > tMap;

ÆþÎÏ

tSet.insert( val);
tMap.insert( std::map::value_type(key, val));
¢¨ tMap[key] = val ²Äǽ

½ÐÎÏ¡¢ºï½ü¡¢Êѹ¹¡Ê¥¤¥ó¥×¥ì¡¼¥¹Êѹ¹¤òÈò¤±¤¿Êѹ¹¡Ë

´ðËÜŪ¤Ëset¤Èmap¤Î½èÍý¤ÏƱ¤¸¡¢typedef¤ò»ÈÍѤ¹¤ë¤³¤È¤¬Àµ¤·¤¤¤«¼«¿®¤Ï¤Ê¤¤¡£
°Ê²¼¤Î¥³¡¼¥É¤Ï¥¤¥ó¥×¥ì¡¼¥¹Êѹ¹¤ò¤µ¤±¤¿Êѹ¹¤ò¹Ô¤Ã¤Æ¤ª¤ê¡¢¤½¤ÎÅÓÃæ¤ËÀâÌÀ¤Î¤¿¤á½ÐÎÏÍѤΥ³¡¼¥É¤òÄɲ䷤Ƥ¤¤ë¡£
´ðËܽèÍý¼ê½ç¤Ï°Ê²¼¤Ë¤Ê¤ë¡£
1.¡¡Êѹ¹¤¹¤ë¥³¥ó¥Æ¥ÊÍ×ÁǤθ¡º÷¡£
2.¡¡Êѹ¹Í×ÁǤΥ³¥Ô¡¼¤òºîÀ®¡£¤³¤³¤Çmap, multimap¤Î¾ì¹ç¤ÏconstÀë¸À¤µ¤ì¤Æ¤¤¤Ê¤¤¤â¤Î¤Ë¤¹¤ë¡£
3.¡¡¥³¥Ô¡¼¤òÊѹ¹¤·¡¢¥³¥ó¥Æ¥Ê¤ËÆþ¤ì¤ëÃͤˤ¹¤ë¡£
4.¡¡¥³¥ó¥Æ¥Ê¤«¤éÍ×ÁǤκï½ü¡£
5.¡¡¿·¤·¤¤ÃͤÎÍ×ÁǤòÁÞÆþ¤¹¤ë¡£¤³¤³¤ÇÍ×ÁǤΰÌÃÖ¤¬ºï½ü¤·¤¿Í×ÁǤÈƱ¤¸¾ì½ê¤«Î٤ˤʤꤽ¤¦¤Ê¾ì¹ç¤Ï¥Ò¥ó¥È·Á¼°¤Îinsert¤òÍѤ¤¤ë¡£
  • std::set
	typedef std::set<int> TestSet;
	
	TestSet tset;
	tset.insert(100);
	tset.insert(200);
	tset.insert(300);
	
	TestSet::iterator i = tset.find( 100);
	if( i != tset.end()){
		int tmp( *i);
		tset.erase( i++);
		tmp = 400;
		tset.insert( i, tmp);
		
	}
	TestSet::iterator si = tset.begin();
	TestSet::iterator ei = tset.end();
	
	for(; si!=ei ; ++si){
		std::cout << "set ==  " << *si << std::endl;
	}

  • std::map

typedef std::map<key_type, value_type> TestMap;
TestMap tMap;
/* input operate */

TestMap::iterator imap = tMap.find(  find_value );				//¸¡º÷

if( imap != testMap.end()){	
	typedef std::pair<TestMap::key_type, TestMap::mapped_type> tMapPair;            //Í×ÁǤÎÄêµÁ(const¤Ê¤·)
	tMapPair y( *imap);								//Í×ÁǤòy¤Ø¥³¥Ô¡¼
	std::cout << (*imap).first << ":" << (*imap).second <<std::endl << std::endl;	//Í×ÁǽÐÎÏ
	
	testMap.erase( imap++);                                                         //Í×ÁǤκï½ü, È¿Éü»Ò¤ò¥¤¥ó¥¯¥ê¥á¥ó¥È¤ò¹Ô¤¤Í­¸úÀ­¤òÊÝ»ý

	y = tMapPair( 1, 2.0);								//ºï½ü¤ÎÂå¤ï¤ê¤ÎÍ×ÁÇ
											//¥¤¥ó¥×¥ì¡¼¥¹Êѹ¹¤ò¤µ¤±¤¿Í×ÁǤÎÊѹ¹
	testMap.insert( imap, y);							//¥Ò¥ó¥È·Á¼°¤Îinserter¤Ë¤è¤êÍ×ÁǤÎÊѹ¹½èÍý½ªÎ»
}

¥Ý¥¤¥ó¥¿¤ÎÏ¢ÁÛ¥³¥ó¥Æ¥Ê¤ËÂФ¹¤ëÈæ³Ó·¿¤Î»ØÄê

Ï¢ÁÛ¥³¥ó¥Æ¥Ê¤¬¼«Æ°¤Ç¥½¡¼¥È¤¹¤ë¾ì¹ç¤ÎÈæ³ÓÊýË¡¤Î»ØÄêÊýË¡¤ò¼¨¤¹¡¥»ØÄꤷ¤Ê¤¤¾ì¹ç¤Ï¥¢¥É¥ì¥¹½ç¤Ë¥½¡¼¥È¤µ¤ì¤ë¡¥
(Æ°ºî̤³Îǧ)
struct IntPtrLess :                                       //¥Æ¥ó¥×¥ì¡¼¥È°ú¿ô¤ËÆþ¤ì¤ë¤¿¤ástruct¤òÍѤ¤·¿¤È¤¹¤ë
  public biniary_function<const int*, const int*, bool>{
  bool operator()(const int*i, const int*j) const {       //¥Õ¥¡¥ó¥¯¥¿¥¯¥é¥¹¤òºîÀ®
    return (*i < *j);
  }
}
 ¡¦
 ¡¦
 ¡¦
set<int*, IntPtrLess> intPtr;  //¥Æ¥ó¥×¥ì¡¼¥È°ú¿ô¤Ë¾åµ­¤Î¡ÖÈæ³Ó·¿¡×¤òÂåÆþ
struct DereferenceLess{
  template <typename PtrType>
  bool operator()(PtrType pT1, PtrType pT2) const {
    return (*pT1 < *pT2);
  }
}
set<string*, DereferenceLess> hoge;

¤³¤Î¥Ú¡¼¥¸¤Ø¤Î¥³¥á¥ó¥È

XUabnG <a href="http://eyakaqtaabzy.com/">eyakaqtaabzy</a>, [url=http://macppqbsvpjg.com/]macppqbsvpjg[/url], [link=http://npnjghvdeggs.com/]npnjghvdeggs[/link], http://dgmbghrkpgwm.com/

0
Posted by lgvqzmypvoa 2013ǯ11·î14Æü(ÌÚ) 16:53:51 ÊÖ¿®

¥³¥á¥ó¥È¤ò¤«¤¯


¡Öhttp://¡×¤ò´Þ¤àÅê¹Æ¤Ï¶Ø»ß¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

ÍøÍѵ¬Ìó¤ò¤´³Îǧ¤Î¤¦¤¨¤´µ­Æþ²¼¤µ¤¤

¥á¥ó¥Ð¡¼¤Î¤ßÊÔ½¸¤Ç¤­¤Þ¤¹