산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

C++ vector 마스터: 동적 배열, 반복자, 실전 예제 총정리

C++ vector란?

C++ vector는 요소가 추가되거나 제거될 때 자동으로 크기가 조정되는 동적 배열입니다. 요소들은 연속적으로 저장되어 빠른 인덱스 접근과 반복자를 통한 순회가 가능합니다.

삽입은 상각 상수 시간에 끝에서 발생합니다. 마지막 요소 제거도 상수 시간이지만, 처음이나 중간에서 삽입/삭제하려면 요소 이동이 필요해 선형 시간 복잡도가 듭니다.

언제 vector를 사용하는가?

C++에서 vector 초기화 방법

std::vector<data-type> name (size, value); // size와 value는 선택 사항 

반복자(Iterators)

반복자들은 vector 요소들에 대한 포인터 같은 인터페이스를 제공합니다. 일반적인 반복자 함수들:

수정자(Modifiers)

수정자들은 vector의 내용을 변경합니다. 주요 함수들:

예제 1: 기본 순회

#include <iostream>
#include <vector>
int main() {
    std::vector<int> nums;
    for (int a = 1; a <= 5; ++a) {
        nums.push_back(a);
    }
    std::cout << "Output from begin and end: ";
    for (auto it = nums.begin(); it != nums.end(); ++it) {
        std::cout << *it << ' ';
    }
    std::cout << "\nOutput from cbegin and cend: ";
    for (auto it = nums.cbegin(); it != nums.cend(); ++it) {
        std::cout << *it << ' ';
    }
    return 0;
} 

출력:

C++ vector 마스터: 동적 배열, 반복자, 실전 예제 총정리

예제 2: 고급 수정자

#include <iostream>
#include <vector>
int main() {
    std::vector<int> nums;
    nums.assign(5, 1); // 5개 요소, 모두 1로 초기화
    std::cout << "Vector contents: ";
    for (size_t i = 0; i < nums.size(); ++i) {
        std::cout << nums[i] << ' ';
    }
    nums.push_back(2);
    std::cout << "\nLast element: " << nums.back();
    nums.pop_back();
    std::cout << "\nVector contents: ";
    for (int a : nums) std::cout << a << ' ';
    nums.insert(nums.begin(), 7);
    std::cout << "\nFirst element: " << nums.front();
    nums.clear();
    std::cout << "\nSize after clear(): " << nums.size();
    return 0;
} 

출력:

C++ vector 마스터: 동적 배열, 반복자, 실전 예제 총정리

용량 함수(Capacity Functions)

다음 함수들로 vector의 저장 특성을 확인하고 조작하세요:

예제 3: 용량 탐색

#include <iostream>
#include <vector>
int main() {
    std::vector<int> vector1;
    for (int x = 1; x <= 10; ++x) {
        vector1.push_back(x);
    }
    std::cout << "Vector size: " << vector1.size() << std::endl;
    std::cout << "Vector capacity: " << vector1.capacity() << std::endl;
    std::cout << "Maximum size of vector: " << vector1.max_size() << std::endl;
    vector1.resize(5);
    std::cout << "Vector size after resizing: " << vector1.size() << std::endl;
    if (!vector1.empty())
        std::cout << "Vector is not empty" << std::endl;
    else
        std::cout << "Vector is empty" << std::endl;
    return 0;
} 

출력:

C++ vector 마스터: 동적 배열, 반복자, 실전 예제 총정리

핵심 요약

C 언어

  1. C 표준 라이브러리 함수 마스터하기: 실전 가이드
  2. C++ 연산자 총정리: 종류, 예제, 샘플 프로그램
  3. C++ do-while 루프: 문법, 실전 예제, 중첩 루프
  4. C++ switch-case 마스터하기: 문법, 활용법, 실전 예제
  5. C++ 동적 배열 할당 완벽 가이드: new, delete, 실전 코드 예제
  6. C++ 포인터 완전 정복: 개념, 예제, 실전 활용
  7. C++ 연산자 오버로딩 실전 가이드: 문법, 접근법, 코드 예제
  8. C++ std::list 마스터하기: 문법, 함수, 실전 예제
  9. C++ 함수 완전 정복: 실전 코드 예제로 이해하기
  10. C++ 구조체 vs 클래스: 핵심 차이, 문법, 최적 사용 사례