Posts [Programming] 코테용 C++ 기본 문법 1
Post
Cancel

[Programming] 코테용 C++ 기본 문법 1

C++ 문법

  1. 배열 길이

    1
    2
    3
    4
    
    int c_array[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    sizeof c_array
    // vector 길이
    vector.capacity();
    
  2. Map

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    
    // 선언
    map<string, int> m;
    // 확인
    if (m.find("Alice") != m.end()) 
    { cout << "find" << endl; 
    } 
    else { 
        cout << "not find" << endl; 
    }
    // 데이터 삽입
    m.insert({"Cam", 300});
       
    // 반복문 데이터 접근
    for (auto iter = m.begin() ; iter != m.end(); iter++) 
    { 
        cout << iter->first << " " << iter->second << endl; 
    } 
    cout << endl;
    // 삭제 특정 인덱스
    m.erase(m.begin()+2);
    // 삭제 key 값 기준
    m.erase("Alice");
       
       
       
    
  3. iterator

    배열의 요소를 가르키는 포인터.

  4. 벡터

    1
    2
    3
    4
    
    // 시퀀스 컨테이너 : 배열 처럼 객체를 순차적으로 보관
    // vector, list, deque
    // 연관 컨테이너 : 키를 바탕으로 대응되는 값을 찾아줌
    // vector: 가변 길이 배열
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    #include <iostream>
    #include <vector>
       
    int main() {
      std::vector<int> vec;
      vec.push_back(10);  // 맨 뒤에 10 추가
      vec.push_back(20);  // 맨 뒤에 20 추가
      vec.push_back(30);  // 맨 뒤에 30 추가
      vec.push_back(40);  // 맨 뒤에 40 추가
       
      for (std::vector<int>::size_type i = 0; i < vec.size(); i++) {
        std::cout << "vec 의 " << i + 1 << " 번째 원소 :: " << vec[i] << std::endl;
      }
    }
    
    1
    2
    3
    
    // iterator : 컨테이너에 원소에 접근할 수 있는 포인터와 같은 객체
    vec.begin() // vector의 첫번째 원소를 가르키는 반복자를 리턴
    vec.end() // vector의 마지막 원소 한칸 뒤를 가리키는 반복자를 리턴
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    
    #include <iostream>
    #include <vector>
       
       
    template <typename T>
    void print_vector(std::vector<T>& vec) {
      // 전체 벡터를 출력하기
      for (typename std::vector<T>::iterator itr = vec.begin(); itr != vec.end();
           ++itr) {
        std::cout << *itr << std::endl;
      }
    }
    int main() {
      std::vector<int> vec;
      vec.push_back(10);
      vec.push_back(20);
      vec.push_back(30);
      vec.push_back(40);
       
      std::cout << "처음 벡터 상태" << std::endl;
      print_vector(vec);
      std::cout << "----------------------------" << std::endl;
       
      // vec[2] 앞에 15 추가
      vec.insert(vec.begin() + 2, 15);
      print_vector(vec);
       
      std::cout << "----------------------------" << std::endl;
      // vec[3] 제거
      vec.erase(vec.begin() + 3);
      print_vector(vec);
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    // 범위 기반 for문
    #include <iostream>
    #include <vector>
       
    int main() {
      std::vector<int> vec;
      vec.push_back(1);
      vec.push_back(2);
      vec.push_back(3);
       
      // range-based for 문
      for (int elem : vec) {
        std::cout << "원소 : " << elem << std::endl;
      }
       
      return 0;
    }
       
    // 실행 결과
       
    //원소 : 1
    //원소 : 2
    //원소 : 3
    
This post is licensed under CC BY 4.0 by the author.

[Framework] EchoFramework를 사용해서 웹 브라우저에 Hello World 띄우기

[Programming] 코테용 C++ 기본 문법 2

Loading comments from Disqus ...