본문 바로가기

분류 전체보기4

C++ STL-연결리스트(std::list)-사용법-링크드리스트 값 삽입 std::list list1 = {1, 2, 3, 4, 5}; list.push_back(6); // {1, 2, 3, 4, 5, 6,} list.insert(next(list1.begin()), 0); // {1, 0, 2, 3, 4, 5, 6} list.insert(list.end(), 7); // {1, 0, 2, 3, 4, 5, 6, 7} 값 제거 std::list list1 = {1, 2, 3, 4, 5}; list.pop_back(); // {1, 2, 3, 4} 벡터와 달리 연결 리스트에서는 삽입 또는 삭제 동작에서 원소를 이동할 필요가 없으며 반복자가 무효화되지 않는다 //벡터 std::vector vec = {1, 2, 3, 4, 5}; auto v_it4 = vec.begin(.. 2023. 9. 19.
C++ STL-단방향리스트(std::forward_list)-사용법 std::forward_list fwd_list = { 1,2,3 }; fwd_list.push_front(0); //맨 앞에 0 추가: {0, 1, 2, 3} std::forward_list::iterator it = fwd_list.begin(); fwd_list.insert_after(it, 5); //맨 처음 원소 뒤에 5 추가: {0, 5, 1, 2, 3} fwd_list.insert_after(it, 6); //맨 처음 원소 뒤에 6 추가: {0, 6, 5, 1, 2, 3} fwd_list.pop_front(); //맨 앞 원소 삭제: {6, 5, 1, 2, 3} it = fwd_list.begin(); fwd_list.erase_after(it); //맨 앞 다음 원소 삭제: {6, 1, 2.. 2023. 9. 19.
C++ STL-벡터(std::vector)-사용법 다양한 선언 방법 std::vector vec; //크기가 0인 벡터 선언 std::vector vec = {1,2,3,4,5}; //지정한 초기값으로 이루어진 크기가 5인 벡터 선언 std::vector vec(10); //크기가 10인 벡터 선언 std::vector vec(10, 5); //크기가 10이고, 모든 원소가 5로 초기화된 벡터 선언 값 추가 std::vector vec; //비어 있는 벡터 생성: {} vec.push_back(1); //맨 뒤에 1 추가: {1} vec.push_back(2); //맨 뒤에 2 추가: {1, 2} vec.insert(vec.begin(), 0); //맨 앞에 0 추가: {0, 1, 2} vec.insert(find(vec.begin(), vec.end(.. 2023. 9. 19.
C++ STL-배열(std::arrary)-사용법 std::array는 연속된 자료구조다 연속된 자료구조는 다음과 같은 특징이 있다 1. 모든 데이터가 메모리에 연속적으로 저장된다 2. 임의 원소에 즉각적응로 접근할 수 있다 3. 데이터가 연속적으로 저장되어 있고, 캐시 지역성 효과로 인해 모든 데이터를 순회하는 것이 매우 빠르다 4. 데이터 저장을 위해 정확하게 데이터 크기만큼 메모리를 사용한다 연속된 자료구조 (배열) 연결된 자료 구조 (리스트) 임의 접근 O(1) O(n) 맨 뒤에 원소 삽입 O(1) O(1) 중간에 원소 삽입 O(n) O(1) 캐시 지역성 있음 없음 std::array 사용법 #include #include void main() { std::array arr; arr[0] = 1; std::cout 2023. 9. 18.