인덱스를 사용해 배열이나 벡터의 각 요소에 접근하는 방식
→ 인덱스가 필요하거나 수정 가능한 참조가 필요하다면 범위 기반 for문 대신 일반 for문을 사용하는 것이 좋음
#include <vector>
#include <iostream>
using namespace std;
int main() {
vector<int> numbers = {1, 2, 3, 4};
// 일반적인 for문
for (int i = 0; i < numbers.size(); i++) {
cout << numbers[i] << endl; // numbers[i]로 요소에 접근
}
return 0;
}
배열이나 벡터 등의 모든 요소를 순차적으로 처리할 때 매우 간단하고 직관적인 방식
for (int num : numbers) 에서는 numbers 라는 컨테이너(배열, 벡터, 리스트 등)의 각 요소를 하나씩 가져와 num 에 대입함
#include <vector>
#include <iostream>
using namespace std;
int main() {
vector<int> numbers = {1, 2, 3, 4};
// 범위 기반 for문
for (int num : numbers) {
cout << num << endl; // 각 요소를 순차적으로 num에 대입하여 사용
}
return 0;
}
for (auto& num : numbers) {
num *= 2; // numbers의 각 요소를 2배로 수정
}
auto& 를 사용해 참조를 전달하면 값을 수정할 수도 있음
:: 스코프 해석 연산자(Scope Resolution Operator)
AMyActor::Step()
AMyActor 클래스의 멤버 함수 Step()을 호출
::는 해당 함수가 어느 클래스(또는 네임스페이스)에 속해 있는지 명시하는 역할을 함
AMyActor 클래스 이름Step() 그 클래스에 정의된 멤버 함수:: Step() 함수가 AMyActor 클래스에 속해 있음을 나타냄→ :: 는 "이 함수나 변수는 특정 클래스의 멤버이다"라고 컴파일러에 알려주는 역할을 한다

6월 18일 코드카타
#include <iostream>
#include <string>
#include <vector>
using namespace std;
string solution(int n) {
vector<string> letters; // 한글은 2바이트 문자여서 char 불가능, string을 사용하여 "수"와 "박"을 저장
// string 벡터 이름이 letters
letters.reserve(n); // 벡터의 크기를 미리 예약하여 성능 최적화, 벡터는 크기를 자동으로 늘리지만, 한 글자씩 늘릴 때마다 속도가 느려짐
for (int i = 0; i < n; ++i)
{
letters.push_back((i % 2 == 0) ? "수" : "박"); // i가 짝수면 "수" 추가, 홀수면 "박" 추가.
}
string result; // 결과를 담을 빈 문자열 생성
// 범위 기반 for문을 사용하여 letters 벡터의 모든 문자열을 s에 추가
for (const string& s : letters) // const: 읽기 전용, &s: 참조로 받아서 복사 비용 절약
{
result += s; // result에 문자열을 이어 붙임
}
return result;
}
int main() {
cout << solution(4) << endl; // 출력: 수박수박
cout << solution(3) << endl; // 출력: 수박수
return 0;
}
처음에는 vector<char> letters; 로 했는데 한글은 2바이트이기 때문에 char를 사용할 수 없다. string으로 사용하고 ""를 사용해야 한다.