pair ¶ó´Â °ÍÀÇ ¿ëµµ´Â?


1.¿ä¾à

ÀÌ·± °í¹ÎÀ» ÇØ º¸½ÅÀûÀÌ ÀÖÀ¸½ÃÁÒ? Æ÷ÀÎÅÍÇüÀ» ¹ÝȯÇÏ´Â ÇÔ¼ö¶ó¸é ¿¹¿Ü»óȲÀ» ¾Ë¸®±â À§Çؼ­ NULLÀ» ¹ÝȯÇÏ¸é µÇ´Âµ¥, ±âº»ÇüÀ̳ª °´Ã¼ ȤÀº ·¹ÆÛ·±½º ŸÀÔÀ» ¹ÝȯÇÏ´Â °æ¿ì¶ó¸é NULL ó·³ ºÐ¸íÇÑ °ªÀÌ ¾ø½À´Ï´Ù.

EOFó·³ ƯÁ¤ÇÑ °ªÀ» ¿¡·¯°ªÀ¸·Î Á¤ÀÇÇØ ³õ´Â´Ù°Å³ª HRESULT ó·³ ºñÆ®º°·Î Àǹ̸¦ ºÎ¿©ÇÏ´Â ¹æ¹ýÀÌ °ÅÀÇ ´ëºÎºÐÀÏ °ÍÀÔ´Ï´Ù.

pair´Â ÀÌ·± °æ¿ì¿¡ ÇÑ ¹øÂëÀº »ý°¢ÇØ º¼ ¼ö ÀÖ´Â ÅÛÇø´ Ŭ·¡½º ÀÔ´Ï´Ù.


2.º»¹®

pair´Â ´ÙÀ½°ú °°ÀÌ ´Ü¼øÇÕ´Ï´Ù.


template<class T, class U> 

    struct pair { 

    typedef T first_type; 

    typedef U second_type 

    T first; 

    U second; 

    pair(); 

    pair(const T& x, const U& y); 

    template<class V, class W> 

        pair(const pair<V, W>& pr); 

    }; 

µÎ °³ÀÇ ¸â¹ö º¯¼ö¸¦ °¡Áø ±¸Á¶Ã¼ Á¤µµ·Î »ý°¢ÇÏ½Ã¸é µü ¸Â½À´Ï´Ù. ÀÌÁ¤µµ Ŭ·¡½º¶ó¸é Á÷Á¢ ¸¸µé¾î¼­ ¾²´Â °Íµµ ³ª»ÚÁö´Â ¾Ê°ÚÁÒ. ÇÏÁö¸¸ pair´Â Ç¥ÁØÀÔ´Ï´Ù.

°£´ÜÇÑ ¿¹Á¦¸¦ »ìÆìº¸°Ú½À´Ï´Ù.

[¿¹Á¦ - Windows Console Application]


// pair.cpp : Defines the entry point for the console application. 

// 



#include "stdafx.h" 

#include <utility> 

using namespace std; 



typedef pair<bool, int> RET_TYPE; 



RET_TYPE Func() 

{ 

    return make_pair( false, 3571); 

    //return RET_TYPE( false, 3571); 

} 



int main(int argc, char* argv[]) 

{ 

    RET_TYPE ret = Func(); 

    

    if( false == ret.first ) 

    { 

        return ret.second; 

    } 

    

    return 0; 

} 

[¿¹Á¦ ¼³¸í]


#include <utility> 

using namespace std; 

pair Ŭ·¡½º¿Í make_pair ÇÔ¼ö´Â utility¿¡ ¼±¾ðµÇ¾î ÀÖ½À´Ï´Ù. ¿ª½Ã STLÀÇ ÀϺÎÀ̱⠶§¹®¿¡ std¶ó´Â À̸§ÀÇ ³×ÀÓ½ºÆäÀ̽º ¾È¿¡¼­ ¼±¾ðµÇ¾î ÀÖ½À´Ï´Ù.

--------------------------------------------------------------

typedef pair<bool, int> RET_TYPE; 
¿ì¸®ÀÇ ¿ëµµ¿¡ ¸Â´Â pair Ŭ·¡½ºÇüÀ» ¼±¾ðÇÏ´Â ¼ø°£ÀÔ´Ï´Ù.
°¢°¢ bool°ú intÇüÀ» °®´Â ¸â¹ö 2°³¸¦ °®´Â °ÍÀ» ÀǹÌÇϰÚÁÒ.

--------------------------------------------------------------

return make_pair( false, 3571); 
make_pair ÇÔ¼ö´Â ÇϳªÀÇ pair °´Ã¼¸¦ »ý¼ºÇؼ­ ¹ÝȯÇÏ´Â ÇÔ¼ö ÀÔ´Ï´Ù. pair°´Ã¼ÀÇ Å¸ÀÔÀº ¸Å°³º¯¼öÀÇ ÀÇÁ¸Çؼ­ °áÁ¤ÇÕ´Ï´Ù.

¿©±â¼­´Â °¢°¢ bool, int ÇüÀÎ false, 3571À» ³Ñ°ÜÁÖ¾úÀ¸¹Ç·Î make_pair ÇÔ¼ö´Â pair ÇüÀÇ °ªÀ» ¹ÝȯÇϰÚÁÒ.

Á» ´õ Ãß»óÀûÀ¸·Î »ý°¢ÇÏÀÚ¸é, ¿ì¸®ÀÇ ÇÔ¼ö´Â ½ÇÆÐÇß´Ù´Â false¿Í ½ÇÆÐÀÇ ¿øÀÎÀÎ 3571À» ÇÔ²² ¹ÝȯÇϰí ÀÖ½À´Ï´Ù.

--------------------------------------------------------------

//return RET_TYPE( false, 3571); 
ÀÌ ºÎºÐÀº ÁÖ¼® ó¸®ÇصξúÁÒ. À§ÀÇ return make_pair...; ´ë½Å¿¡ ÀÌ ¹®ÀåÀ» »ç¿ëÇØµµ °°Àº °á°ú¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. ÀÌÀ¯´Â pair Ŭ·¡½º´Â ÀÌ¹Ì µÎ °³ÀÇ ÀÎÀÚ¸¦ °®´Â »ý¼ºÀÚ¸¦ °¡Áö°í Àֱ⠶§¹®ÀÔ´Ï´Ù.

--------------------------------------------------------------


    if( false == ret.first ) 

    { 

        return ret.second; 

    } 

¹Ýȯ°ªÀÌ ½ÇÆÐ¸¦ ÀǹÌÇÑ´Ù¸é, ´Ù½Ã ½ÇÆÐÀÇ ¿øÀÎÀ» ¹ÝȯÇϸ鼭 ÇÁ·Î±×·¥Àº Á¾·áÇÕ´Ï´Ù.

--------------------------------------------------------------

À¯Æ¿¸®Æ¼¶ó´Â °ÍÀÌ ÀÌ·¸°Ô »ç¿ëÇϱâ Èûµé¾î¼­¾ß µÇ°Ú³Ä¶ó°í ¹Ý¹®ÇϽô ºÐÀÌ °è½Ç ¼öµµ Àְڳ׿ä. ÀÌ ±ÛÀÇ Àǹ̴ °¢ÀÚ ¹Þ¾ÆµéÀÌ½Ã±æ ¹Ù¶ø´Ï´Ù.



3.¿¹Á¦



4.Âü°í

MSDN
The Practice of Programming
The C++ Programming Language


- 2001.08.13 Smile Seo -