프로그래밍 공부

C++ 26

카테고리 설명
  • Vector는, STL( Standard Template Library ) 에 포함된 동적 배열 데이터 구조이다. vector는 배열과 유사하지만, 크기를 동적으로 조절할 수 있는 컨테이너이다. 일반적으로 동적 배열을 구현할때 사용하며, 임의접근이 필요할때 유용하다. 예를들어. 리스트나 큐와같이 순차적인 데이터에 비해 특정원소에 빠른 접근이 필요할 경우에 사용된다. #include #include int main() { std::vector myVector; // 정수형 원소를 담는 vector 생성 // 원소 추가 myVector.push_back(10); myVector.push_back(20); myVector.push_back(30); // 원소 출력 for (int i = 0; i < myVec..

    C++

    (STL)Vector NEW

    2023.10.17
    댓글
  • C++에서 template를 사용하는 방법 중, 자료 형 이 아닌 매개변수를 template로 사용하는 방법이 있다. #include using namespace std; // 자료형이 아닌 매개변수를 받아오는 템플릿 template class MyArray { public: MyArray() = default; ~MyArray() {} T& operator[](int index) { return arr2[index]; } private: T arr1[10]; // 상수만 들어가면서 형태만 띄고있는것. T arr2[SIZE]; }; int main() { MyArray arr1; MyArray arr2; for (int i = 0; i < 30; i++) arr1[i] = i; for (int i = 0..

  • STL STL 은 C++ 프로그래밍 언어의 표준 라이브러리인 "Standard Template Lirary"의 약자이다. STL은 제네릭 프로그래밍 개념을 기반으로 하여, 유용한 컨테이너 클래스, 알고리즘 함수 및 객체를 재공하여 C++개발자 들이 보다 쉽고 효율적으로 작업할 수 있도록 해준다. STL은 주 네가지 구성요소로 이루어져있다. 컨테이너 (Containers) 알고리즘 (Iterators) 함수객체 (Algorithms) 반복자 (Function Objects) 컨테이너 (Containers) STL의 컨테이너는 데이터를 저장하는 클래스를 말한다. 다양한 형태의 컨테이너를 제공한다. SequnceContatiner 선형 컨테이너 AssociativeContainer 연관 컨테이너 Adapter..

  • C++에서 일반적으로 함수를 사용하는 방법을 static binding이라고 한다. 이는, 함수를 정의해주는 바인딩이 컴파일 타임 때 호출될 함수가 정의된다는 의미이고 이렇게 컴파일 타임 때 정의되는 함수는 컴파일시간에 정의되기 떄문에, 실행시에 함수가 바뀌지 않는다. 그래서 실행시간에 바인딩을 검색할 필요가 없기 때문에, 실행속도가 동적 바인딩에 비해 빠르다. 동적바인딩은, 실행시간에 호출을 처리함으로써 객체의 타입이나 상태에 따라 실행 흐름을 자유롭게 제어할 수 있게된다. 이로써 객체지향 프로그래밍 언어에서의 다형성과 유연성을 확보할 수 있게된다. 그러나, 실행시간에 바인딩을 검색해야 하므로 정적 바인딩보다는 실행속도가 느릴 수 있다. 정적 바인딩 ( Static Binding ) 컴파일 시간에 변수..

  • C++ 의 상속은 이중상속이 가능하다. C++ 의 상속과정에서 상속자를 두개 넣으면 두개의 class의 public 과 protected에 대한 값을 사용할 수 있다. 다음은 이러한 이중상속 에 대한 코드이다. #include // 이중상속 에 대한 이야기 using namespace std; class USBDevice { int id; public: USBDevice() = default; USBDevice(int id) : id(id) {} auto GetId() const { return id; } void PlugAndPlay() {} }; class NetworkDevice { int id; public: NetworkDevice() = default; NetworkDevice(int id) ..

  • C++에서의 다형성인 오버로딩, 오버라이딩 중 오버 라이딩을 사용하는 부모자식 클레스에 대한 내용이다. C++ 에서는 부모자식 클래스에 대한 함수 오버라이딩과 privet을 제외한 함수 공유가 가능하다. 이는 부모클래스와 자식클래스로 이어지는 것을 이야기한다. 예를들어 책이라는 묶음에 책내용이라는 자식이 있는 격 이다. 부모클래스와 자식클래스의 관계에서는 부모클래스는 기본적인 특성과 동작을 정의하고, 자식클래스는 이러한 특성과 동작을 상속받아 추가적인 기능을 추가하거나 변경할 수 있다. ( 변경은 함수 오버라이딩을 의미한다 ) 이를 통해 코드의 확장성과 유연성을 증가시킬 수 있다. 다음 코드는 기본적인 부모자식클래스의 예시이다. 코드예시는 다음과 같다. class Mother { private: int ..