๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด/C++ ๊ธฐ์ดˆ28

[C++] 13-1. ์ž…์ถœ๋ ฅ(feat. ํ‘œ์ค€์ž…์ถœ๋ ฅ๊ณผ ํŒŒ์ผ์ž…์ถœ๋ ฅ) โœ… ์ŠคํŠธ๋ฆผ ์ŠคํŠธ๋ฆผ์€ ํ•˜๋‚˜์˜ ํ๋ฆ„์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ์ˆ˜๋„๊ผญ์ง€๋ฅผ ํ‹€์–ด๋†“๊ณ  ๋„ค๋ชจ๋‚œ ํ˜ธ์Šค๋ฅผ ๋ผ์šฐ๋ฉด ๋ฌผ์ด ๋„ค๋ชจ ๋ชจ์–‘์œผ๋กœ ๋‚˜์˜ค๊ณ , ๋™๊ทธ๋ž€ ํ˜ธ์Šค๋ฅผ ๋ผ์šฐ๋ฉด ๋™๊ทธ๋ž—๊ฒŒ ๋‚˜์˜จ๋‹ค. ์šด์˜์ฒด์ œ๊ฐ€ ๋ฌผ์„ ๊ณต๊ธ‰ํ•˜๋Š” ์›์ฒœ์ด๊ณ  ์ŠคํŠธ๋ฆผ์€ ํ˜ธ์Šค๋‹ค. ์ถœ๋ ฅ ๋ฐฉํ–ฅ์„ ํ™”๋ฉด(๋ชจ๋‹ˆํ„ฐ)์œผ๋กœ ์ •ํ•˜๋ฉด ํ™”๋ฉด์— ์ถœ๋ ฅ๋˜๊ณ , ํŒŒ์ผ๋กœ ์ •ํ•˜๋ฉด ํŒŒ์ผ์— ์ถœ๋ ฅ(์“ฐ๊ธฐ)๋œ๋‹ค. ์ž…๋ ฅ ๋˜ํ•œ ์ž…๋ ฅ ์žฅ์น˜(ํ‚ค๋ณด๋“œ)๋กœ ํ•  ์ˆ˜๋„ ์žˆ๊ณ  ํŒŒ์ผ์„ ํ†ตํ•ด ์ฝ์„ ์ˆ˜๋„ ์žˆ์œผ๋ฉฐ ํŒŒ์ดํ”„(ํŠน์ • ๋ช…๋ น์˜ ๊ฒฐ๊ณผ)๊ฐ€ ๋  ์ˆ˜๋„ ์žˆ๋‹ค. ์œ ๋‹‰์Šค ์šด์˜์ฒด์ œ์™€ ๋ฐ€์ ‘ํ•œ C/C++์€ ์ž…์ถœ๋ ฅ์„ ๋ฐ์ด ์ŠคํŠธ๋ฆผ์œผ๋กœ ํ•ด์„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ŠคํŠธ๋ฆผ์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ์žˆ๋‹ค๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์ˆ˜์›”ํ•˜๋‹ค. โœ… ํ‘œ์ค€ ์ŠคํŠธ๋ฆผ ํ‘œ์ค€ ์ŠคํŠธ๋ฆผ์—๋Š” stdin, stdout, stderr ์„ธ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ๊ฐ๊ฐ 0(stdin), 1(stdout), 2(stderr.. 2023. 5. 17.
[C++] 12. ๋ฌธ์ž์—ด(feat. ์ง๋ ฌํ™”) โœ… ๋ฌธ์ž์—ด ๋ฌธ์ž์—ด(string)์€ ๋ฌธ์ž๋“ค์˜ ์ง‘ํ•ฉ์ด๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ฑฐ๋‚˜ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค. ๊ธฐ์กด C ์Šคํƒ€์ผ์˜ ๋ฌธ์ž์—ด ์ฒ˜๋ฆฌ ๋ฐฉ์‹์€ ์ง๊ด€์ ์ด์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. ํ•˜์ง€๋งŒ ๊ธฐ์กด์˜ ๋ฐฉ์‹๋Œ€๋กœ ์“ฐ์—ฌ์ง„ ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค๋ฉด ์ฝ์„ ์ค„์€ ์•Œ์•„์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ„๋‹จํžˆ ๋ณด๊ณ  ๋„˜์–ด๊ฐ€์ž. #include int main() { char str[16] = "Hello world"; const char* str2 = "Hello Seoarang"; char c = 'a'; c -= 32; printf("%s\n", str); printf("%s\n", str2); printf("%c\n", c); } // ์ถœ๋ ฅ ๊ฒฐ๊ณผ //Hello world //Hello Seoarang //A ๋ฌธ์ž๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ์ž๋ฃŒํ˜•์€ char์ด๋‹ค. .. 2023. 5. 6.
[C++] 11. ํ•จ์ˆ˜(feat. ์ „์—ญํ•จ์ˆ˜, ๋ฉค๋ฒ„ํ•จ์ˆ˜, ์ •์ ํ•จ์ˆ˜, ๋žŒ๋‹คํ•จ์ˆ˜) ํ•จ์ˆ˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํ•ต์‹ฌ์ด๋‹ค. ๋ณ€์ˆ˜๋Š” ๋ฐ์ดํ„ฐ๊ณ  ํ•จ์ˆ˜๋Š” ๋™์ž‘์„ ์˜๋ฏธํ•œ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ†ตํ•ด์„œ ์›ํ•˜๋Š” ๊ฒƒ์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋ฉฐ, ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํ•จ์ˆ˜์ธ ๊ฒƒ์ด๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ํ•จ์ˆ˜๋กœ ์‹œ์ž‘ํ•ด์„œ ํ•จ์ˆ˜๋กœ ๋๋‚œ๋‹ค. ์˜ค๋Š˜์€ ํ•จ์ˆ˜์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. โœ… ํ•จ์ˆ˜์˜ ์ค‘์š”์„ฑ ํ•จ์ˆ˜๋ฅผ ์ƒ๊ฐํ•  ๋•Œ, ์ปดํ“จํ„ฐ์˜ ๊ด€์ ์—์„œ๋Š” ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ํ๋ฆ„์„ ๋‹ด๊ณ ์žˆ๋Š” ๊ณณ์ด ํ•จ์ˆ˜๋‹ค. ๊ฐœ๋ฐœ์ž์˜ ๊ด€์ ์—์„œ๋Š” ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ์„ ์œ„ํ•ด ์ง์ ‘๋งŒ๋“œ๋Š” ๊ฒƒ์„ ํ•จ์ˆ˜๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๋‘˜ ๋‹ค ์ค‘์š”ํ•˜๋‹ค. ์šด์˜์ฒด์ œ์˜ ์‹œ์Šคํ…œ ํ•จ์ˆ˜, ์–ธ์–ด์—์„œ ์ œ๊ณตํ•˜๋Š” main ํ•จ์ˆ˜์™€ ๊ฐ™์ด ํ•„์ˆ˜์ ์ธ ํ•จ์ˆ˜๋“ค์ด ์žˆ๋‹ค. ์ด ํ•จ์ˆ˜๋“ค์€ ์ •์˜ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์ž˜๋ชป ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค๋ฉด ์น˜๋ช…์ ์ธ ๊ฒฐํ•จ์œผ๋กœ ์ด์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฑฑ์ •ํ•˜์ง€ ๋ง์ž. ์šฐ๋ฆฌ๊ฐ€ ์ด๋Ÿฐ ํ•จ์ˆ˜๋“ค์˜ ์ž‘๋™๋ฐฉ์‹๊ณผ ์›๋ฆฌ๊นŒ์ง€ .. 2023. 4. 28.
[C/C++] 10. ํฌ์ธํ„ฐ(feat. ์Šค๋งˆํŠธ ํฌ์ธํ„ฐ) โœ… ํฌ์ธํ„ฐ C++์˜ ์žฅ์ ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ง์ ‘์ ์œผ๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋งŽ์€ ๊ฐœ๋ฐœ์ž์—๊ฒŒ๋Š” ๋‹จ์ ์œผ๋กœ ๋Š๊ปด์งˆ ์ˆ˜ ์žˆ๋‹ค. ๋ˆˆ์œผ๋กœ ํ›คํžˆ ํ™•์ธํ•ด ๋ณผ ์ˆ˜ ์—†๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ž˜๋ชป ๊ด€๋ฆฌํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์ด ์ฃฝ์–ด๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ง์ ‘ ์ œ์–ดํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„ ์ˆ˜๋„ ์žˆ๊ณ  ์•„๋‹ ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ํ™•์‹คํ•œ ๊ฑด C/C++์€ ์ปดํ“จํ„ฐ์˜ ๋ฉ”์ธ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋Œ์•„๊ฐ€๋Š”์ง€ ์•Œ๊ธฐ์—๋Š” ์ ํ•ฉํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ํฌ์ธํ„ฐ๋Š” ์ฃผ์†Œ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๋ณ€์ˆ˜์ด๋‹ค. 64๋น„ํŠธ ์ฒด์ œ์—์„œ integer ํƒ€์ž…์˜ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋Š” ๋ช‡์ธ๊ฐ€๋ฅผ ๋ฌป๋Š” ์งˆ๋ฌธ์— ๋งŽ์€ ๋ถ„๋“ค์ด 4byte๋ผ๊ณ  ๋Œ€๋‹ตํ•œ๋‹ค. ํฌ์ธํ„ฐ๋ณ€์ˆ˜๋Š” ์ฃผ์†Œ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ํฌ์ธํ„ฐ๋ณ€์ˆ˜๋Š” ์ปดํ“จํ„ฐ์˜ ์›Œ๋“œ(word)์™€ ๊ฐ™๋‹ค. 8๋น„ํŠธ ์ฒด์ œ์—์„œ๋Š” 1 ์›Œ๋“œ๊ฐ€ 8๋น„ํŠธ=1๋ฐ”์ดํŠธ์ด๋‹ค. ๋”ฐ๋ผ์„œ 64๋น„ํŠธ ์ฒด์ œ์—์„œ๋Š” ํƒ€์ž…์ด ๋ฌด์—‡์ด๊ฑด ๊ฐ„์— ํฌ์ธํ„ฐ ๋ณ€์ˆ˜์˜ ํฌ๊ธฐ๋Š” 64.. 2023. 4. 26.
[C/C++] 9. ๋ฐฐ์—ด(feat. vector & array) ๊ณ ์ „์ ์ธ c๊ฐ•์˜์—์„œ๋Š” ๋ฐฐ์—ด๊ณผ ํฌ์ธํ„ฐ๋ฅผ ๊ฐ™์ด ์„ค๋ช…ํ•œ๋‹ค. ๋ฐฐ์—ด์˜ ์ด๋ฆ„์ด ๊ณง ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์ฃผ์†Œ๋ฅผ ์˜๋ฏธํ•˜๋Š” ํฌ์ธํ„ฐ๋กœ๋„ ์“ฐ์ผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ฐฐ์—ด ์ฑ•ํ„ฐ์—์„œ๋Š” ์–ธ์–ด์—์„œ ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ๋ฐฐ์—ด์˜ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•๊ณผ Standard library๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•œ๋‹ค. ํฌ์ธํ„ฐ๋Š” ๋‹ค์Œ ์ฑ•ํ„ฐ์—์„œ ์†Œ๊ฐœํ•˜๊ฒ ๋‹ค. โœ… ๋ฐฐ์—ด C/C++์—์„œ ๋ฐฐ์—ด ์„ ์–ธ๊ณผ ์“ฐ์ž„์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. #include void changeVal(double* d) { d[4] = 6.0; } void changeColor(Car* cars) { cars[1].color = "blue"; } int main() { double d[5] = {1.0, 2.0, 3.0, 4.0, 5.0}; Car cars[3]; int arr[] = {7,8,9}; chang.. 2023. 4. 25.
[C/C++] 8. ๋ฐ˜๋ณต๋ฌธ(์‹ฌํ™”)(feat. iterator, predicate, lambda) ์—ฌ๊ธฐ์„œ๋Š” C++์˜ Standard library ์ปจํ…Œ์ด๋„ˆ์˜ ์กฐ๊ฑด ์ˆœํšŒ์— ๋Œ€ํ•œ ๊ฐœ๋…๋“ค์„ ์ด์•ผ๊ธฐํ•œ๋‹ค. ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ์ดํ•ด๊ฐ€ ์•ˆ๊ฐ€๋Š” ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ์ฐธ๊ณ ํ•ด๋ณด๋„๋ก ํ•˜์ž. bool NewsScheduler::checkSchedule(Schedule& schedule) { const auto &curMilli = chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count(); const auto itr = find_if(scheduleMap.rbegin(), scheduleMap.rend(), [&curMilli](const pair &p) { return p.second.start c.. 2023. 4. 22.