рдЕрд╕реНрд╡реАрдХрд░рдг: рд▓реЗрдЦ рдлрд░рд╡рд░реА рдореЗрдВ рд╡рд╛рдкрд╕ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди, рдЙрди рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдореБрдЭ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИрдВ, рдпрд╣ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдЖ рдерд╛ред рд╡рд┐рд╖рдп рдмрд╣реБрдд рд╡реНрдпрд╛рдкрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдПрдХ рдХрд╛рдЯ-рдЫрд╛рдБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬреЛ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реБрдЖ, рдЙрд╕реЗ рдмрд╛рдж рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ред

рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкреИрдЯрд░реНрди рдХреНрдпрд╛ рд╣реИрдВ, рдпрд╣ рдЬрд╛рдиреЗ рдмрд┐рдирд╛ рдЖрдзреБрдирд┐рдХ C ++ рдХреЛ рд╕рдордЭрдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рднрд╛рд╖рд╛ рдХрд╛ рдпрд╣ рдЧреБрдг рдХреЛрдб рдХреЗ рдЕрдиреБрдХреВрд▓рди рдФрд░ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рдкрдХ рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рдЦреЛрд▓рддрд╛ рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
C ++ рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рддрдВрддреНрд░ рд╣рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдПрдХрдЬреБрдЯ рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ: рдкреВрд░реНрдгрд╛рдВрдХ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рдпрд╣ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рд╕рд╛рдорд╛рдиреНрдп рдЧреБрдгреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рд╕рд╛рде-рд╕рд╛рде "рдХрд╛рд░" рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдлрд╝рдВрдХреНрд╢рди рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдФрд░ рдХреНрд▓рд╛рд╕ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╣реИрдВред
рдлрд╝рдВрдХреНрд╢рди рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛рд░реНрдп рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рд╡рд░рдг рд╣реИ рдЬрд┐рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЯреЗрдореНрдкрд▓реЗрдЯ (рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝рдВрдХреНрд╢рди, рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдлрд╝рдВрдХреНрд╢рди) рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпреЛрдВ (рдпрд╛ рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╡рд┐рд╡рд░рдг) рдХрд╛ рдПрдХ рдкрд░рд┐рд╡рд╛рд░ рд╣реИред рд╡рд┐рд╡рд░рдг рджреНрд╡рд╛рд░рд╛, рдлрд╝рдВрдХреНрд╢рди рдЯреЗрдореНрдкрд▓реЗрдЯ рдПрдХ рдирд┐рдпрдорд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рдорд╛рди рд╣реИ: рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдХреБрдЫ рддрддреНрд╡ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИрдВ (рдкреНрд░рдХрд╛рд░, рд╕реНрдерд┐рд░рд╛рдВрдХ) рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдХреНрд▓рд╛рд╕ рдЯреЗрдореНрдкреНрд▓реЗрдЯ - рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рд╡рд┐рд╡рд░рдг рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдорд╛рдирдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡реЗ рдирд┐рд░реНрдорд╛рдг рд╣реИрдВ рдЬрд┐рдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрдЬрд╛рдп рдареЛрд╕ рддрд░реНрдХреЛрдВ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрдХреНрд╖рд╛рдПрдВ рдЙрддреНрдкрдиреНрди рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред
рдЖрдЗрдП рдлрд╝рдВрдХреНрд╢рди рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рд╕рдорд╛рд░реЛрд╣ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕
рдкрд╣рд▓рд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреИрд╕реЗ рд▓рд┐рдЦреЗрдВ?
рджреЛ рдХреЗ рдиреНрдпреВрдирддрдо рддрддреНрд╡ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдкреВрд░реНрдгрд╛рдВрдХ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ 2 рдХрд╛рд░реНрдп рд▓рд┐рдЦрдиреЗ рд╣реЛрдВрдЧреЗред
int _min(int a, int b){ if( a < b){ return a; } return b; } double _min(double a, double b){ if( a < b){ return a; } return b; }
рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдорд╛рдиреНрдп рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдХреЗрд╡рд▓ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкреИрдЯрд░реНрди рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╣рд╛рдирд┐рдХрд╛рд░рдХ рд╣реЛрдЧрд╛ред
рдпрджрд┐ рдЖрд╡реЗрджрди рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рдлрд╝рдВрдХреНрд╢рди рдХреЗ рджреЛрдиреЛрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЖрд╡реЗрджрди рдХреЗ рдмрд╛рдЗрдирд░реА рдХреЛрдб рдореЗрдВ рдЧрд┐рд░ рдЬрд╛рдПрдВрдЧреЗ, рднрд▓реЗ рд╣реА рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдм рдХрдВрдкрд╛рдЗрд▓рд░ рдмрд╣реБрдд рд╕реНрдорд╛рд░реНрдЯ рд╣реИрдВ, рд╡реЗ рдЕрдкреНрд░рдпреБрдХреНрдд рдХреЛрдб рдХреЛ рдХрд╛рдЯ рд╕рдХрддреЗ рд╣реИрдВ)ред рдФрд░ рдпрджрд┐ рдЖрдкрдХреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдиреНрдпреВрдирддрдо 2 рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ (рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд▓реНрдкрдирд╛ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рдПрдХ рдиреНрдпреВрдирддрдо рд░реЗрдЦрд╛ рд╣реИ)!
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрджрд┐ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЙрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рдЬрд┐рдирдХреЗ рд╕рд╛рде рдЖрдкрдХреЛ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ, рддреЛ рдЖрдк рдлрд╝рдВрдХреНрд╢рди рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд┐рджреНрдзрд╛рдВрдд, рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ рдореЗрдВ, рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реЛрдЧрд╛:
- рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
- рд╣реЗрдбрд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯ <рд╡рд░реНрдЧ рдкреНрд░рдХрд╛рд░> (рдпрд╛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ <рдЯрд╛рдЗрдкрдиреЗрдо рдХрд╛ рдирд╛рдо>) рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдмреНрд╕ рдЯрд╛рдЗрдк рдЯрд╛рдЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ;
- рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рдкреНрд░рдХрд╛рд░ рдХрд╛ рдирд╛рдо рдЯрд╛рдЗрдк рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдиреНрдпреВрдирддрдо рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд┐рд▓рддреЗ рд╣реИрдВ:
template<class Type> Type _min(Type a, Type b){ if( a < b){ return a; } return b; }
рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдиреНрдпреВрдирддрдо рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХреЙрд▓ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЬрдм рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдмрд╛рдЗрдирд░реА рдХреЛрдб (
рддрддреНрдХрд╛рд▓ рдирд╣реАрдВ) рдореЗрдВ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдЕрдЧрд░ рдЖрдк рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЪрд░ рдХреЗ рд╕рд╛рде рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмрдирд╛рдПрдЧрд╛ред
рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЖрдо рддреМрд░ рдкрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрдВрдкрд╛рдЗрд▓рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЯрд╛рдЗрдк рдХреЗ рдмрдЬрд╛рдп рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рд╕рдВрдХрд▓рдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди (рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рддреНрд╡рд░рд┐рдд рд░реВрдк рд╕реЗ) рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рддреЛ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдореЗрдВ, рдХрдВрдкрд╛рдЗрд▓рд░ рддреАрд╕рд░реА рдХреЙрд▓ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдк рдХреНрдпрд╛ рд╣реИ (рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпреЛрдВ рд╕реЛрдЪреЗрдВ::
#include <iostream> template<class Type> Type _min(Type a, Type b) { if (a < b) { return a; } return b; } int main(int argc, char** argv) { std::cout << _min(1, 2) << std::endl; std::cout << _min(3.1, 1.2) << std::endl; std::cout << _min(5, 2.1) << std::endl; // oops! return 0; }
рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
#include <iostream> template<class Type> Type _min(Type a, Type b) { if (a < b) { return a; } return b; } int main(int argc, char** argv) { std::cout << _min<double>(5, 2.1) << std::endl; return 0; }
рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдлрд╝рдВрдХреНрд╢рди (рдирд╣реАрдВ) рдХрдм рдХрд╛рдо рдХрд░реЗрдЧрд╛?
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЖрдк рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдВрдХрд▓рдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдкрд░рд┐рдгрд╛рдореА рдлрд╝рдВрдХреНрд╢рди рд╣рдореЗрд╢рд╛ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╣реЛрдЧрд╛? рдЬрд╛рд╣рд┐рд░ рд╣реИ рдирд╣реАрдВред рдХрд┐рд╕реА рднреА рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдЗрд╕ рдбреЗрдЯрд╛ рдХреЗ рдЧреБрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ _min, рдпрд╣ рдПрдХ рдСрд░реНрдбрд░рд┐рдВрдЧ рдСрдкрд░реЗрдЯрд░ (рдСрдкрд░реЗрдЯрд░ <) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдХрд┐рд╕реА рднреА рдлрд╝рдВрдХреНрд╢рди рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреБрдЫ рдЧреБрдгреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рдорд╛рдирддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдХреЙрдкреА рдСрдкрд░реЗрдЯрд░, рдПрдХ рддреБрд▓рдирд╛ рдСрдкрд░реЗрдЯрд░, рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рдзрд┐ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐, рдЖрджрд┐) рдЕрдкреЗрдХреНрд╖рд┐рдд C ++ рднрд╛рд╖рд╛ рдорд╛рдирдХ рдореЗрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдВ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдВрдЧреАредрд╕рдорд╛рд░реЛрд╣ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЕрдзрд┐рднрд╛рд░
рдлрдВрдХреНрд╢рди рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЛ рдУрд╡рд░рд▓реЛрдб рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░ рдЬрдм рдпрд╣ рдУрд╡рд░рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
template<class Type> Type* _min(Type* a, Type* b){ if(*a < *b){ return a; } return b; }
рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ
рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди рдЯреЗрдореНрдкрд▓реЗрдЯ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЕрдкреНрд░рднрд╛рд╡реА рдпрд╛ рдЧрд▓рдд рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ
рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдХрд░ рд╕рдХрддреЗ
рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд▓рд┐рдЦреЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЗрд╡рд▓ рд╡рд░реНрдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдлрд╝рдВрдХреНрд╢рди рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреА рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рд╡рд╣ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЗрд╕ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред
template<> std::string _min(std::string a, std::string b){ if(a.size() < b.size()){ return a; } return b; }
рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдЕрд░реНрдерд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЛрдб рдореЗрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рдмрд╛рдЗрдирд░реА рдХреЛрдб рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП, рдХрдИ рдФрд░ рдкреВрд░реНрдгрд╛рдВрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдмрдиреЗ рд░рд╣рддреЗ рд╣реИрдВред рдПрдХ рдкреНрд░рд╛рдХреГрддрд┐рдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреНрд▓рд╛рд╕ рдЯреЗрдореНрдкреНрд▓реЗрдЯ, рдЬреЗрдиреЗрд░рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ, рдФрд░ C ++ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рд╣реИред рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛!