cpp_foreach - 8BitsCoding/RobotMentor GitHub Wiki

cpp_foreach

๋ฐฐ์—ด์—์„œ ๋™์ž‘

int scores[3] = {10, 20, 30};

for(int score : scores)
{
    std::cout << score << " " << std::endl;
}

์ปจํ…Œ์ด๋„ˆ์—์„œ ๋™์ผํ•˜๊ฒŒ ๋™์ž‘

std::map<std::string, int> scoreMap;

scoreMap["Lulu"] = 10;
scoreMap["CoCo"] = 50;
scoreMap["Mocha"] = 100;

for(auto& score : scoreMap)
{
    std::cout << score.first << ": " << score.second << std::endl;
}

๋ฒ”์œ„ ๊ธฐ๋ฐ˜(Range-Based) for ๋ฐ˜๋ณต

  • for ๋ฐ˜๋ณต๋ฌธ์„ ๋” ๊ฐ„๋‹จํ•˜๊ฒŒ ์“ธ ์ˆ˜ ์žˆ์Œ
  • ์ด์ „ for๋ฐ˜๋ณต๋ณด๋‹ค ๊ฐ€๋…์„ฑ์ด ๋” ๋†’์Œ
  • STL์ปจํ…Œ์ด๋„ˆ์™€ c์Šคํƒ€์ผ ๋ฐฐ์—ด ๋ชจ๋‘์—์„œ ์ž‘๋™ํ•จ
  • auto ํ‚ค์›Œ๋“œ๋ฅผ ๋ฒ”์œ„ ๊ธฐ๋ฐ˜ for์—์„œ ์“ธ ์ˆ˜ ์žˆ์Œ
  • ์ปจํ…Œ์ด๋„ˆ/๋ฐฐ์—ด์„ ์—ญ์ˆœํšŒ ํ•  ์ˆœ ์—†์Œ

๊ฐ’์œผ๋กœ ํ˜น์€ ์ฐธ์กฐ๋กœ

score๋กœ ๋ณต์‚ฌ๋˜๊ธฐ์— ๊ฐ’์˜ ๋ณ€ํ™”๊ฐ€ ์—†์Œ

std::map<std::string, int> scoreMap;

for(auto score : scoreMap)
{
    score.second -= 10;
    std::cout << score.first << ": " << score.second << std::endl;
}

๊ฐ’์˜ ๋ณ€ํ™”๋ฅผ ์ฃผ๊ณ  ์‹ถ๋‹ค๋ฉด ์ฐธ์กฐํ˜•์œผ๋กœ ์“ฐ์ž

std::map<std::string, int> scoreMap;

for(auto& score : scoreMap)
{
    score.second -= 10;
    std::cout << score.first << ": " << score.second << std::endl;
}