본문 바로가기
728x90

연결리스트3

[c++] iterator에 대해서 1) 컨테이너에 저장되어 있는 원소들을 참조할 때 사용 2) 추장적으로, 컨테이너의 모든 원소들을 볼 수 있는 포인터와 비슷한 객체, 여러 종류가 있음. 3) 반복자의 성질을 가지므로, 컨테이너와 안의 요소를 구별, 요소의 값 확인, 컨테이너 안에 있는 요소들 간의 이동할 수 있는 연산 제공 4) end() 함수는 끝이 아님, 맨 마지막 원소의 다음번 원소를 가르킴. 5) 반복자의 종류 - 입력 반복자(input iterator) : 읽기만 가능, 순방향 이동, 현 위치의 원소를 한 번만 읽을 수 있는 반복자 - 출력 반복자(output iteraotr) : 쓰기만 가능, 순방향 이동, 현 위치의 원소를 한 번만 쓸 수 있는 반복자 - 순방향 반복자(forward iterator) : 읽기/쓰기 모두 가.. 2023. 7. 13.
[c++] STL <list> 정리 STL의 list는 양방향 연결리스트 구조이다. #include #include // list로 불러온다. #include using namespace std; // 여러가지 자료형 선언 가능 list L; list L_string; for (int i = 0; i < 10; i++) L.push_back(i); // 값들을 저장하면서 연결해줌. // insert + next 예제 L.insert(next(L.begin(),2), 3); // L.begin에서 2만큼 next한 지점에 3을 insert함. 오른쪽으로 한칸씩 밀려남 // erase + next L.erase(next(L.begin(), 2)); // L.begin의 2만큼 next한 지점의 값을 지운다. 왼쪽으로 한칸씩 밀려남 // siz.. 2023. 7. 13.
[c++] 백준 에디터(1406), 연결리스트 문제 https://www.acmicpc.net/problem/1406 한 줄로 된 간단한 에디터를 구현하려고 한다. 이 편집기는 영어 소문자만을 기록할 수 있는 편집기로, 최대 600,000글자까지 입력할 수 있다. 이 편집기에는 '커서'라는 것이 있는데, 커서는 문장의 맨 앞(첫 번째 문자의 왼쪽), 문장의 맨 뒤(마지막 문자의 오른쪽), 또는 문장 중간 임의의 곳(모든 연속된 두 문자 사이)에 위치할 수 있다. 즉 길이가 L인 문자열이 현재 편집기에 입력되어 있으면, 커서가 위치할 수 있는 곳은 L+1가지 경우가 있다. 이 편집기가 지원하는 명령어는 다음과 같다. L : 커서를 왼쪽으로 한 칸 옮김 (커서가 문장의 맨 앞이면 무시됨) D : 커서를 오른쪽으로 한 칸 옮김 (커서가 문장의 맨 뒤이면 .. 2023. 7. 13.
728x90