Coding/C++

(New) C++언어 공부 0007

  • -
728x90
반응형

1. 함수 호출 시, 인수 전달 방법

    • call by value

        • 인수의 값 만이 함수로 복사

    • call by reference

        • 포인터나 별명을 이용하여 흉내 가능

        • 인수의 주소가 함수로 복사

 

2. 함수 포인터

    • 함수를 가리키는 포인터

        • 함수도 메모리에 존재하므로, 주소가 있음

        • 반환형 (*함수 포인터 이름)([매개변수1, 매개변수2, …])

        

 

3. Vector

    • 동적 배열처럼 동작

        • 코드가 실행될 때 배열 크기가 결정되고, 메모리에 할당되는 배열

        • 자료형 *배열이름 = new 자료형[배열의 크기]; 을 이용하여 사용

        • delete [] 배열이름; 을 이용하여 메모리 할당 해제

    • 새로운 데이터는 배열의 뒤에 추가됨 

    

 

3-1. Vector의 사용

    • #include <vector> 를 이용하여 헤더파일 사용

    • 선언

        • vector<int> v; // int타입 벡터 생성

        • vector<int> v = {1, 2, 3}; // int형 백터 생성 후 1, 2, 3 으로 초기화

        • vector<int> v[10];  // 크기가 10인 int타입 벡터 생성

        • vector<int> v(5); // 5개의 원소를 0으로 초기화

        • vector<int> v(5, 3); // 5개의 원소를 3으로 초기화

        • vector<int> v[] = {{1, 2}, {3, 4}}; // 백터 생성(행은 가변, 열은 고정)

        • vector<vector<int>> v; // 2차원 백터 생성(행과 열 모두 가변)

        • vector<int> v2(v); // 벡터 v를 복사하여 벡터v2 생성

    • 데이터 삽입

        • 벡터의 기본적인 데이터 삽입 방식은 뒤쪽에 추가되는 방식

            • v.push_back(10);  // 마지막 위치에 숫자 10 추가

        • 반복자를 이용한 방식

            • vector<int>::iterator it = v.begin(); // 반복자 생성

            • it = v.insert(it, 2); //맨앞에 2를 삽입

            • it = v.insert(it, 2, 3); // 맨앞에 3을 2개 삽입

            • it = v.insert(it+2, 2, 4); // 2번째부터 4를 2개 삽입

    • 데이터 삭제

        • v.pop_back(); // 마지막에 넣은 값 제거

        • v.erase(vec.begin()+10); // index 10의 값을 제거

        • v.erase(vec.begin(), vec.begin()+5); // index 0~5의 값을 제거

        • v.clear(); //모든 값 제거

 

3-2. STL vector 라이브러리 함수

    

 

4. Iterator

    • 현재 처리하고 있는 자료의 위치를 기억하는 객체

    • 포인터와 유사하며, 포인터 연산자 사용 가능

    • 증감 연산자 사용 가능

    • 비교 연산자 사용 가능

    

728x90
반응형

'Coding > C++' 카테고리의 다른 글

(New) C++언어 공부 0009  (0) 2024.08.29
(New) C++언어 공부 0008  (0) 2024.08.29
(New) C++언어 공부 0006  (0) 2024.08.29
(New) C++언어 공부 0005  (0) 2024.08.29
(New) C++언어 공부 0004  (0) 2024.08.29
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.