๐Ÿ“– C๋ž‘ C++ 15

C++ ํด๋ž˜์Šค ๋ฉค๋ฒ„๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™”๋ฅผ ์•Œ์•„๋ณด์ž

ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ, ํด๋ž˜์Šค ์•ˆ์— ์žˆ๋Š” ๋ฉค๋ฒ„ ๋ณ€์ˆ˜์— ๋Œ€ํ•ด์„œ ์ดˆ๊ธฐํ™”๋ฅผ ํ•ด์ค˜์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์ž˜ ์•Œ๊ณ  ์žˆ๋Š”๋ฐ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ• ์ค‘ ์–ด๋Š ๊ฒƒ์„ ์จ์•ผํ• ๊นŒ? ์— ๋Œ€ํ•ด์„œ ๋‹ค๋ค„๋ณด๋ ค๊ณ  ํ•œ๋‹ค ๋˜ ํ—ท๊ฐˆ๋ฆฌ๋Š” ์ผ์ด ์—†๋„๋ก ~~ - ํด๋ž˜์Šค ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋ž€ - ํด๋ž˜์Šค ๋ฉค๋ฒ„ ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™” ๋ฐฉ๋ฒ• 3๊ฐ€์ง€ 1. ํด๋ž˜์Šค ๋ฉค๋ฒ„ ๋ณ€์ˆ˜ (Class Member Variable) ๋ž€ ํด๋ž˜์Šค ๋ฉค๋ฒ„ ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™”๋ฅผ ํ•˜๋ ค๋ฉด, ๋จผ์ € ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋ฅผ ์•Œ์•„์•ผํ•˜๋‹ˆ๊นŒ ์งง๊ฒŒ ์ •๋ฆฌ๋งŒ ํ•˜๋ ค๊ณ  ํ•œ๋‹ค ์œ„ํ‚ค๋ฐฑ๊ณผ ์ธ์šฉ: ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜(member variable) ๋˜๋Š” ๋ฉค๋ฒ„ ํ•„๋“œ๋Š” ํŠน์ • ๊ฐ์ฒด์™€ ์—ฐ๊ฒฐ๋œ ๋ณ€์ˆ˜์˜ ํ•˜๋‚˜์ด๋ฉฐ, ํ•ด๋‹น ๋ณ€์ˆ˜์˜ ๋ชจ๋“  ๋ฉ”์†Œ๋“œ(๋ฉค๋ฒ„ ํ•จ์ˆ˜)์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ํด๋ž˜์Šค ๊ธฐ๋ฐ˜ ์–ธ์–ด์—์„œ ์ด๋“ค์€ ๋‘ ์ข…๋ฅ˜๋กœ ๊ตฌ๋ณ„๋œ๋‹ค: ..... ๊ทธ๋ ‡๋‹ค.. ์ •์˜๋ฅผ ์ฝ์œผ๋ฉด ์•Œ ์ˆ˜ ..

C++ ๋Œ€๋ฌธ์ž/์†Œ๋ฌธ์ž ๋ณ€ํ™˜

๋„ˆ๋ฌด ๋ฐ”๋น ์„œ ๊ธด ํฌ์ŠคํŒ… ๊ธ€์˜ ๋งˆ๋ฌด๋ฆฌ๋ฅผ ๋ชปํ•˜๊ณ  ์žˆ๋‹ค.. ์ผ๋‹จ ๊ฐ€๋ฒผ์šด๊ฑฐ๋ผ๋„ ์˜ฌ๋ ค์•ผ ๋“ค ์–ต์šธํ•  ๊ฒƒ ๊ฐ™๋‹ค 1. std::transform ์‚ฌ์šฉ 2. std::toupper & std::tolower ์‚ฌ์šฉ 3. boost::to_upper ์™€ to_lower ์‚ฌ์šฉ 1. std::transform ๊ตฌ๊ธ€์— "C++ ๋Œ€์†Œ๋ฌธ์ž ๋ณ€ํ™˜" ์ด๋ผ๊ณ  ๊ฒ€์ƒ‰ํ•˜๋ฉด ์•„๋งˆ ๊ฐ€์žฅ ๋จผ์ € ๋ณด์ด๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด์ง€ ์•Š์„๊นŒ ์‹ถ๋‹ค ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ๋ณด๊ธฐ์ „์— cppreference์— ์žˆ๋Š” ํ•จ์ˆ˜ ํ˜•ํƒœ๋ฅผ ๋จผ์ € ๋ณด๊ฒ ๋‹ค * ํ—ค๋” #include ํ—ค๋”๋Š” ์š”๋ ‡๊ณ ,, * ํ•จ์ˆ˜ ์›ํ˜•(?) template OutputIt transform( InputIt first1, Inpu..

C++ Function Object (ํ•จ์ˆ˜ ๊ฐ์ฒด)๋ฅผ ์•Œ์•„๋ณด์ž

Lamda (๋žŒ๋‹ค) ํฌ์ŠคํŒ…์„ ํ•˜๊ธฐ ์œ„ํ•ด ๊ณต๋ถ€ํ•˜๋˜ ์ค‘,, ์ด์ƒํ•˜๊ฒŒ ๊ธ€์ด ์•ˆ์จ์กŒ๋‹ค. ๊ธฐ์ดˆ ์—†์ด ์‚ฌ์šฉํ• ๋ ค๊ณ  ํ•˜๋‹ˆ๊นŒ ๊ทธ๋Ÿฐ๊ฒƒ ๊ฐ™์•„์„œ ํ•จ์ˆ˜ ๊ฐ์ฒด์— ๋Œ€ํ•ด ๋จผ์ € ๊ณต๋ถ€๋ฅผ ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค 1. ํ•จ์ˆ˜ ํ˜ธ์ถœ ์—ฐ์‚ฐ์ž ํ•จ์ˆ˜ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ ์ „์—, ํ•จ์ˆ˜ ํ˜ธ์ถœ ์—ฐ์‚ฐ์ž๋ฅผ ๋ด๋ณด๊ฒ ๋‹ค ์•„์ฃผ์•„์ฃผ ๊ฐ„๋‹จํ•œ ์˜ˆ์‹œ๋ฅผ ๋“ค์–ด๋ณด๊ฒ ๋‹ค #include #include using namespace std; int myPlus(int num1, int num2) { return num1+num2; } int main(void) { int num1 = 10; int num2 = 20; cout

C++ std::map์„ ์‚ฌ์šฉํ•ด๋ณด์ž

C ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค๋ณด๋ฉด ๋Š๋ผ๋Š”๊ฒŒ ํ•˜๋‚˜ ์žˆ๋‹ค ์ •๋ง,, ์ž๋ฃŒ๊ตฌ์กฐ ๊ด€๋ฆฌํ•˜๊ธฐ ํž˜๋“ค๋‹ค๋ผ๋Š”๊ฑฐ๋‹ค (๋‚˜๋งŒ ๊ทธ๋Ÿด์ง€๋„ ๋ชจ๋ฅธ๋‹ค) ๊ทธ๋ž˜์„œ C++์—์„œ STL์ด ์ œ๊ณตํ•˜๋Š” ์—ฌ๋Ÿฌ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ๋„ˆ๋ฌด ํŽธ๋ฆฌํ–ˆ๋‹ค cf) STL (Standard Template Library) ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ, std:: namespace๋ฅผ ๋ถ™์—ฌ์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค ํ•˜์ง€๋งŒ ํ•œ ๋‘๊ฐœ ์‚ฌ์šฉํ•  ์ˆ˜๋ก, ์ž‘์€๊ฑฐ ํ•˜๋‚˜๋„ ํ—ท๊ฐˆ๋ ค์„œ ์ •๋ฆฌํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค - map ์ •์˜ ๋ฐฉ๋ฒ• - map ์š”์†Œ ์‚ฝ์ž… - map ์š”์†Œ ๊ฒ€์ƒ‰ - map ์š”์†Œ ์‚ญ์ œ - map ์ˆœํšŒ - map ํฌ๊ธฐ ๊ตฌํ•˜๊ธฐ 0. map์ด ๋ญ”๊ฐ€์š”? ์œ„ํ‚ค๋ฐฑ๊ณผ: ๋‹ค์ˆ˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ, map์€ ๊ณ ์ฐจ ํ•จ์ˆ˜๋กœ์„œ ์ „ํ•ด์ง„ ํ•จ์ˆ˜๋ฅผ ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ์— ์ ์šฉ(apply)ํ•˜์—ฌ ๊ทธ ๊ฒฐ๊ณผ ๋ฐฐ์—ด์„ ์ „๋‹ฌํ•œ๋‹ค. KEY์™€ VALUE ํ˜•ํƒœ๋กœ ๋˜์–ด์žˆ..

C++ ์ „์—ญ ๋ณ€์ˆ˜์™€ ์ •์  ๋ณ€์ˆ˜๋ฅผ ์•Œ์•„๋ณด์ž

์ „์—ญ๋ณ€์ˆ˜์™€ ์ง€์—ญ๋ณ€์ˆ˜๋Š” ๋งŽ์ด ๋“ค์–ด๋ณผ ์šฉ์–ด์ด๋‹ค. ์ง€์—ญ๋ณ€์ˆ˜๋Š” ํ•จ์ˆ˜ ์•ˆ์—์„œ ์„ ์–ธํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๋ณ€์ˆ˜์ด๊ณ , ์ „์—ญ ๋ณ€์ˆ˜๋Š” ์ง€์—ญ๋ณ€์ˆ˜์™€ ๋‹ค๋ฅด๊ฒŒ ์ „์ฒด์—์„œ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์˜๋ฏธ๋กœ ๋ฐ›์•„๋“ค์ธ ๋‹ค๋ฉด, ๊ฐ„๋‹จํ•˜๊ฒŒ ์ดํ•ด๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค ์‹ค์ œ ์ฝ”๋“œ์—์„œ๋„ ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ต์ง€ ์•Š๋‹ค. ๊ฐ„๋‹จํ•œ ์˜ˆ์‹œ๋ฅผ ๋“ค์–ด๋ณธ๋‹ค๋ฉด string globalVar; void test() { string localVar; } ์œ„์น˜๋งŒ ๋ฐ”๋€๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋„ ๊ดœ์ฐฎ์„ ์ •๋„์ด๋‹ค. (๋ฌผ๋ก  ๋ฌธ๋ฒ•์ด ์ถ”๊ฐ€๋  ์ˆ˜๋Š” ์žˆ๋‹ค.) ๊ทธ๋Ÿฌ๋ฉด ์ •์ (Static) ๋ณ€์ˆ˜๋Š” ๋ฌด์—‡์ธ์ง€, ์ „์—ญ๋ณ€์ˆ˜๋ž‘ ์ฐจ์ด๊ฐ€ ๋ญ”์ง€ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•œ๋‹ค. (์ง€์—ญ๋ณ€์ˆ˜๋Š” ๋”ฐ๋กœ ์ •๋ฆฌํ•˜์ง€ ์•Š์•„๋„ ๋  ๊ฒƒ ๊ฐ™์•„์„œ ํŒจ์“ฐ ๐Ÿ˜€) ๊ฐœ๋…์— ๋Œ€ํ•œ ์„ค๋ช…์€ ์•„๋ž˜์— ์ž์„ธํžˆ ์ ์„๊ฑฐ๊ณ , ๊ธ‰ํ•œ ๋ถ„๋“ค์„ ์œ„ํ•ด ์–ด๋–ป๊ฒŒ ์“ฐ๋Š”์ง€๋งŒ ๋จผ์ € ์ •๋ฆฌํ•˜์ž๋ฉด 1. ์ „์—ญ ๋ณ€์ˆ˜ ์‚ฌ์šฉ extern strin..