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

c++30

[C++] 14. ์ฐธ์กฐ์ž(Reference) โœ… ์ฐธ์กฐ์ž(Reference) ์ฐธ์กฐ์ž๋Š” ํฌ์ธํ„ฐ์™€ ์ƒ๋‹นํžˆ ์œ ์‚ฌํ•œ ๊ฐœ๋…์ด๋‹ค. C์—์„œ๋Š” ํฌ์ธํ„ฐ๋งŒ ์žˆ์—ˆ์ง€๋งŒ C++์—์„œ๋Š” ์ฐธ์กฐ์ž(Reference)๋ผ๋Š” ๊ฐœ๋…์ด ๋„์ž…๋˜๋ฉด์„œ ์ข€ ๋” ํŽธํ•˜๊ฒŒ ์ฃผ์†Œ๊ฐ’์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. ์‚ฌ์‹ค C++์—์„œ๋„ ํฌ์ธํ„ฐ์— ์˜์กดํ•˜๊ณ  ์‹ถ์ง€ ์•Š์•˜๊ณ  *๊ณผ ->๋ฅผ ์ค„์ด๊ณ  ์‹ถ์—ˆ๋‹ค๊ณ  ํ•œ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ• ๋‹นํ•˜๊ณ  ๋ณ€์ˆ˜๋ผ๋Š” ๊ฒƒ์œผ๋กœ ์ด๋ฆ„์„ ์ง€์–ด์ค€๋‹ค. ์ฐธ์กฐ์ž๋Š” ์ด ์ด๋ฆ„์— ๋ณ„๋ช…์„ ๋ถ™์—ฌ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด '๊ทผํ˜ธ'์˜ ๋ณ„๋ช…์ด '๊ทผ๋˜๋ฆฌ'๋ผ๊ณ  ํ–ˆ์„ ๋•Œ '๊ทผํ˜ธ'์—๊ฒŒ ๊ณผ์ž๋ฅผ ์ฃผ๋Š” ๊ฒƒ๊ณผ '๊ทผ๋˜๋ฆฌ'์—๊ฒŒ ๊ณผ์ž๋ฅผ ์ฃผ๋Š” ๊ฒƒ์€ ๋™์ผํ•˜๋‹ค. ๊ฒฐ๊ตญ, ์ฐธ์กฐ์ž๋Š” ๋˜ ๋‹ค๋ฅธ ์ด๋ฆ„์„ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค. #include using namespace std; int main() { int var = 10; int &ref .. 2023. 6. 2.
[C++] 13-2. ๊ธฐ๋ณธ์ž…์ถœ๋ ฅ๊ณผ ํŒŒ์ผ์ž…์ถœ๋ ฅ(feat. iostream, ifstream, ofstream, stringstream) ์ €๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ํ‘œ์ค€์ž…์ถœ๋ ฅ์ด ๋ฌด์—‡์ธ์ง€ ๊ทธ๋ฆฌ๊ณ  ํ‘œ์ค€์ž…์ถœ๋ ฅ๊ณผ ํŒŒ์ผ์ž…์ถœ๋ ฅ์˜ ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ดค๋‹ค. ์ „ํ†ต์ ์ธ ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— C++์ด ์•„๋‹Œ C ์ฝ”๋“œ๊ฐ€ ๋Œ€๋ถ€๋ถ„์ด์—ˆ๋‹ค. ๋ชจ๋˜ C++์ด ๋‚˜์˜ค๋ฉด์„œ Standard library์—์„œ๋Š” iostream, ifstream, ofstream, stringstream๋“ฑ์˜ stream ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ง€์›ํ•œ๋‹ค. ํ•˜๋‚˜์”ฉ ์‚ดํŽด๋ณด์ž. ๊ธฐ๋ณธ ์ž…์ถœ๋ ฅ (Standard Input/Output) C++์—์„œ ๊ธฐ๋ณธ ์ž…์ถœ๋ ฅ์€ iostream ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. iostream์€ ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ (istream)๊ณผ ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ (ostream)์„ ์ œ๊ณตํ•œ๋‹ค. istream (์ž…๋ ฅ ์ŠคํŠธ๋ฆผ) `istream`์€ ํ‘œ์ค€ ์ž…๋ ฅ์œผ๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ค๋Š” ์ŠคํŠธ๋ฆผ์ด๋‹ค. ํ‚ค๋ณด๋“œ.. 2023. 5. 19.
[C++] 13-1. ์ž…์ถœ๋ ฅ(feat. ํ‘œ์ค€์ž…์ถœ๋ ฅ๊ณผ ํŒŒ์ผ์ž…์ถœ๋ ฅ) โœ… ์ŠคํŠธ๋ฆผ ์ŠคํŠธ๋ฆผ์€ ํ•˜๋‚˜์˜ ํ๋ฆ„์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ์ˆ˜๋„๊ผญ์ง€๋ฅผ ํ‹€์–ด๋†“๊ณ  ๋„ค๋ชจ๋‚œ ํ˜ธ์Šค๋ฅผ ๋ผ์šฐ๋ฉด ๋ฌผ์ด ๋„ค๋ชจ ๋ชจ์–‘์œผ๋กœ ๋‚˜์˜ค๊ณ , ๋™๊ทธ๋ž€ ํ˜ธ์Šค๋ฅผ ๋ผ์šฐ๋ฉด ๋™๊ทธ๋ž—๊ฒŒ ๋‚˜์˜จ๋‹ค. ์šด์˜์ฒด์ œ๊ฐ€ ๋ฌผ์„ ๊ณต๊ธ‰ํ•˜๋Š” ์›์ฒœ์ด๊ณ  ์ŠคํŠธ๋ฆผ์€ ํ˜ธ์Šค๋‹ค. ์ถœ๋ ฅ ๋ฐฉํ–ฅ์„ ํ™”๋ฉด(๋ชจ๋‹ˆํ„ฐ)์œผ๋กœ ์ •ํ•˜๋ฉด ํ™”๋ฉด์— ์ถœ๋ ฅ๋˜๊ณ , ํŒŒ์ผ๋กœ ์ •ํ•˜๋ฉด ํŒŒ์ผ์— ์ถœ๋ ฅ(์“ฐ๊ธฐ)๋œ๋‹ค. ์ž…๋ ฅ ๋˜ํ•œ ์ž…๋ ฅ ์žฅ์น˜(ํ‚ค๋ณด๋“œ)๋กœ ํ•  ์ˆ˜๋„ ์žˆ๊ณ  ํŒŒ์ผ์„ ํ†ตํ•ด ์ฝ์„ ์ˆ˜๋„ ์žˆ์œผ๋ฉฐ ํŒŒ์ดํ”„(ํŠน์ • ๋ช…๋ น์˜ ๊ฒฐ๊ณผ)๊ฐ€ ๋  ์ˆ˜๋„ ์žˆ๋‹ค. ์œ ๋‹‰์Šค ์šด์˜์ฒด์ œ์™€ ๋ฐ€์ ‘ํ•œ C/C++์€ ์ž…์ถœ๋ ฅ์„ ๋ฐ์ด ์ŠคํŠธ๋ฆผ์œผ๋กœ ํ•ด์„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ŠคํŠธ๋ฆผ์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ์žˆ๋‹ค๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์ˆ˜์›”ํ•˜๋‹ค. โœ… ํ‘œ์ค€ ์ŠคํŠธ๋ฆผ ํ‘œ์ค€ ์ŠคํŠธ๋ฆผ์—๋Š” stdin, stdout, stderr ์„ธ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ๊ฐ๊ฐ 0(stdin), 1(stdout), 2(stderr.. 2023. 5. 17.
[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.
[C/C++] 7. ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ตฌ์„ฑ(windows/linux) C/C++์€ ์ปดํŒŒ์ผ ์–ธ์–ด์ด๋ฉด์„œ ํ”Œ๋žซํผ ์ข…์†์ ์ธ ํŠน์„ฑ์„ ๊ฐ–๊ณ  ์žˆ๋‹ค. ๋‹ค์‹œ ๋งํ•˜๋ฉด ํ”Œ๋žซํผ์— ์ข…์†๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ปดํŒŒ์ผํ•ด์„œ ์–ป์€ ์‹คํ–‰ํŒŒ์ผ์ด ๋งŒ์•ฝ ํ”Œ๋žซํผ์ด ๋‹ค๋ฅด๋‹ค๋ฉด ์‹คํ–‰ํ•  ์ˆ˜ ์—†๋‹ค. ๋Œ€ํ‘œ์ ์ธ ํ”Œ๋žซํผ์ธ ์œˆ๋„์šฐ์™€ ๋ฆฌ๋ˆ…์Šค์—์„œ ๊ฐ๊ฐ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์„ฑ์„ ์–ด๋–ป๊ฒŒ ํ•˜๋Š”์ง€ ์‚ดํŽด๋ณด์ž. โœ… windows ์œˆ๋„์šฐ ์šด์˜์ฒด์ œ๋Š” Visual Studio๊ฐ€ 90% ์ด์ƒ์˜ ์ ์œ ์œจ์„ ๋ณด์ธ๋‹ค. ์œˆ๋„์šฐ ์šด์˜์ฒด์ œ์ด๊ธฐ ๋•Œ๋ฌธ์— MS๊ฐ€ ๋งŒ๋“  VS์™€ ํ˜ธํ™˜์ด ์ž˜ ๋˜๊ณ , MSVC ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์ž์ฒด์ ์œผ๋กœ ๋‚ด์žฅํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— VS๋งŒ ์„ค์น˜ํ•ด๋„ ๋ณ„๋‹ค๋ฅธ ์ถ”๊ฐ€๋„๊ตฌ๊ฐ€ ํ•„์š” ์—†๋‹ค. ์ปดํŒŒ์ผ, ์‹คํ–‰, ๋ถ„์„๊นŒ์ง€ ํ•œ IDE์—์„œ ์ด๋ฃจ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ํŽธ๋ฆฌํ•˜๋‹ค. ๋‹ค๋งŒ ๋งŽ์€ ๊ธฐ๋Šฅ์ด ์žˆ๋Š” ๋งŒํผ ์„ค์น˜ ์šฉ๋Ÿ‰์ด ํฌ๊ณ  ๋ฌด๊ฒ๋‹ค. ํ˜„์žฌ๋Š” Visual Studio 2022๊นŒ์ง€ ๋‚˜์™€์žˆ๋‹ค. ์„ค์น˜๋Š” ์•„๋ž˜ .. 2023. 4. 11.
[C++]ํฌ์ธํ„ฐ์™€ ๋ ˆํผ๋Ÿฐ์Šค ์ฐจ์ด C++์—์„œ ํฌ์ธํ„ฐ์™€ ๋ ˆํผ๋Ÿฐ์Šค๋Š” ๋ชจ๋‘ ๋ณ€์ˆ˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ฑฐ๋‚˜ ์ฐธ์กฐํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜์ง€๋งŒ, ๊ทธ๋“ค ๊ฐ„์— ์ค‘์š”ํ•œ ์ฐจ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ •์˜ - ํฌ์ธํ„ฐ(Pointer): ํฌ์ธํ„ฐ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค. ๋ณ€์ˆ˜์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜๊ณ  ํ•ด๋‹น ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๊ฐ„์ ‘ ์ฐธ์กฐ๋ฅผ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํฌ์ธํ„ฐ๋Š” '*' ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ ์–ธํ•˜๋ฉฐ, ํ• ๋‹น๋œ ์ฃผ์†Œ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - ๋ ˆํผ๋Ÿฐ์Šค(Reference): ๋ ˆํผ๋Ÿฐ์Šค๋Š” ๊ธฐ์กด ๋ณ€์ˆ˜์˜ ๋ณ„์นญ(alias)์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๊ธฐ์กด ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๋ณ„์นญ์„ ๋งŒ๋“ค์–ด ํ•ด๋‹น ๋ณ€์ˆ˜๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๋ ˆํผ๋Ÿฐ์Šค๋Š” '&' ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ ์–ธ๋˜๋ฉฐ, ํ•œ ๋ฒˆ ํ• ๋‹น๋˜๋ฉด ๋‹ค๋ฅธ ๋ณ€์ˆ˜๋กœ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ดˆ๊ธฐํ™” - ํฌ์ธํ„ฐ(Pointer): ํฌ์ธํ„ฐ๋Š” ์ดˆ๊ธฐํ™”ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋„ ํฌ์ธํ„ฐ๋กœ ์ดˆ๊ธฐํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค... 2023. 1. 9.