벡터 메모리 heap에 동적 할당되는 자료의 길이를 변경할 수 있는 배열입니다. 쉽게 말해 자동으로 메모리가 할당되는 배열입니다. 일반 배열과 동일하게 연속적인 메모리 공간에 저장합니다. (개별 원소에 대한 접근 속도가 빠름) iterator 뿐 아니라 index 로도 접근이 가능합니다. 컨테이너 끝에서 삽입 / 제거하는 속도가 빠릅니다. 중간의 값을 삽입하거나 삭제할 수도 있지만 배열 기반이므로 빈번하게 일어난다면 비효율적입니다. 동적으로 확장 및 축소가 가능한 Dynamic Array로 구현되어 있습니다. vector 생성자와 연산자 더보기 vector v - 비어있는 vector v 를 생성합니다. vector v(5) - 기본 값(0)으로 초기화 된 5개의 원소를 가지는 vector v를 생성합..
c++
스택, 큐, 덱은 특정 위치에서만 원소를 넣거나 뺄 수 있는 제한이 걸려 있습니다. 그래서 스택, 큐, 덱을 묶어서 Restricted Structure 라고 부르기도 합니다. Stack 스택은 가장 마지막으로 들어간 데이터가 가장 첫 번째로 나오는 성질(LIFO)을 가진 자료구조 입니다. 스택은 주로 문자열 폭발, 아름다운 괄호 만들기, 짝찾기 키워드 문제에서 주로 쓰입니다. 또한 "교차하지 않고" 라는 문장이 나오면 스택을 사용해야 하는 것 아닌지 염두해야 합니다. 삽입 및 삭제에 O(1), 탐색에 O(n) 이 걸립니다. 탐색에 O(n)이 걸리는 이유는 n번 째 요소를 찾기 위해 앞의 요소를 n번 반복해야 찾을 수 있기 때문입니다. 제일 상단이 아닌 나머지 원소들 확인/변경 기능이 제공되지 않습니다...
+ 연산자 가장 간단한 방법으로 '+' 연산자를 활용할 수 있습니다. + 연산자를 통해 ret 문자열 앞과 뒤에 char 값을 추가할 수 있습니다. #include using namespace std; int main(){ ... for(int k=0 ; k
C++에서 특정 문자열을 숫자인지 확인하고 싶은 경우나 숫자로 변환하고 싶은 경우가 있습니다. isdigit() 문자가 숫자인지 판별하는 함수로 매개 변수로 들어온 char 타입이 10진수 숫자로 변경이 가능하면 0 아닌 숫자(true), 아니면 0(false)를 반환합니다. string 타입의 question 첫번째 char 값이 숫자인지 아닌지 판별합니다. string question; .. cin >> question; if(isdigit(question[0])) { ... } stoi() c++11 이상일 때 string 형식의 변수를 정수형으로 변환합니다. atoi() 함수가 C 라이브러리 내장 함수라 string 변수를 인자로 인식하지 못하는 문제를 해결한 함수입니다. question 첫번째 ..
map v 값을 map의 key 값에 저장하고 value 값에 중복 유무를 검사하는 boolean 값을 저장합니다. #include using namespace std; map mp; int main(){ vector v{1,1,2,2,3,3}; for(int i : v) { if(mp[i]){ continue; } else { mp[i] = 1; } } vector ret; for(auto it : mp){ ret.push_back(it.first); } for(int i : ret) cout