for문 반복자 vs 인덱스
문자열 비교
int i = 0부터 해당 컨테이너의 size까지 돌리는 방법 2가지 존재for (const auto& elem : container) { ... }
모든 STL 컨테이너에서 사용 가능 (vector, list, set, map 등)
컨테이너가 인덱스 기반 접근을 지원하지 않아도 순회 가능
인덱스 값을 못 씀
for (int i = 0; i < container.size(); i++ {...}
인덱스가 자주 필요한 경우 사용
vector, array 등 랜덤 엑세스가 가능한 컨테이너에서 성능이 매우 좋음
list, set, map 등 인덱스 기반 접근이 불가능한 컨테이너에는 사용 불가
for (auto it = s.begin(); it != s.end(); it++) {...}
어떤 컨테이너든 일관되게 순회
인덱스, 값 둘 다 접근 가능
대신 인덱스와 값에 접근하는데에 코드가 더 많이 듦
C++에서의 string은 직접 비교연산자를 쓸 수 있다
다만, 사전식 비교를 하기 때문에 "4"가 "10"보다 크다고 봄
if ("4" > "10") cout << "true";
#include <cctype> 해서 사용
islower(int c) : 소문자(a~z)면 true, 아니면 false 반환
isupper(int c) : 대문자(A~Z)면 true) 반환
isdigit(int c) : 문자가 숫자('0'~'9')이면 true, 아니면 false 반환
isxdigit(c) : 문자가 16진수 숫자(0-9, a-f, A-F)인지 확인
isalpha(int c) : 알파벳 문자이면 true
isspace(int c) : 모든 공백 문자(스페이스, 탭, 개행 문자 등)이면 true
isblank(int c) : blank(스페이스(' ')와 수평 탭('\t')만)인지 확인
isalnum(c) : 문자가 알파벳(A-Z, a-z) 또는 숫자(0-9)인지 확인
ispunct(c) : 문자가 구두점 문자(콤마, 마침표 등)인지 확인
isprint(c) : 문자가 공백을 포함한 인쇄 가능한 문자인지 확인
isgraph(c) : 문자가 공백이 아닌 인쇄 가능한 문자인지 확인
toupper(c) : 문자면 대문자로, 아니면 그냥 반환
tolower(c) : 문자면 소문자로, 아니면 그냥 반환
