작은 걸음 VI — C++로 성장하기
원소를 추가하고 하나씩 읽기
원소를 추가하고 하나씩 읽기
이번에 배울 것
std::vector는 원소를 뒤에 추가할 수 있습니다. 범위 기반 for는 컨테이너의 원소를 하나씩 꺼내 반복합니다.
실행해 보기
예제 · example2.cpp
int sum(const std::vector<int>& numbers)
{
int total = 0;
for (int value : numbers)
total = total + value;
return total;
}
void small_main()
{
std::vector<int> numbers = {10, 20, 30};
numbers.push_back(40);
print("Sum: ", sum(numbers));
}
push_back(40)은 뒤에 40을 붙입니다. for (int value : numbers)는 각 원소 값을 value로 받아 합산합니다. 결과는 Sum: 100입니다.
이 형태의 value는 복사한 정수이므로 value를 바꿔도 배열 원소가 바뀌지 않습니다. size()의 타입은 int와 다를 수 있어 큰 크기를 다룰 때는 타입도 확인해야 합니다.
Exercise — std::string 함수
const std::string&을 받아 길이를 돌려주는 text_length 함수를 만들고 "Small"의 길이를 출력하세요.
연습 문제 코드 · exercise2_starter.cpp
int text_length(const std::string& text)
{
// Return the length.
return 0;
}
void small_main()
{
std::string text = "Small";
print(text_length(text));
}
Hint
text.size()는 표준 C++의 unsigned 크기 type을 돌려줍니다. 이 연습의 return type은 int이므로 static_cast<int>(text.size())로 명시적으로 바꾸어 반환하세요.
풀이 보기
int text_length(const std::string& text)
{
return static_cast<int>(text.size());
}
void small_main()
{
std::string text = "Small";
print(text_length(text));
}