C++/뇌를 자극하는 C++ STL 12

뇌를 자극하는 C++ STL 이것만은 알고 갑시다 12장

1.1 string 클래스는 문자들을 저장하는 컨테이너로 C, C++처럼 '\0' 문자를 요구하지 않기 때문에 C-style 문자열로 변환하려면 c+str() 멤버 함수를 사용합니다.1.2 c_str() 멤버 함수는 '\0' 문자를 포함한 문자열 주소를 반환하며 data() 멤버 함수는 '\0' 문자를 포함하지 않은 문자열(배열) 주소를 반환합니다. 2.1 string 객체의 찾기 관련 함수가 실패하면 string::npos를 반환합니다.2.2 string 객체는 vector처럼 메모리 재할당으로 발생하는 성능저하를 막기 위해 예약된 메모리 공간의 크기를 확인하려면 capacity() 멤버 함수를 사용할 수 있고 미리 메모리 공간을 예약하려면 reserve() 멤버 함수를 사용할 수 있습니다. 3.1 c..

뇌를 자극하는 C++ STL 이것만은 알고 갑시다 11장

1.1 STL 구성 요소의 인터페이스를 변경하는 구성 요소를 어댑터라 합니다.1.2 컨테이너의 인터페이스를 변경한 stack, queue, priiority_queue 컨테이너를 컨테이너 어댑터라 합니다. 2.1 stack의 원소를 추가하는 멤버 함수는 push()입니다.2.2 stack의 원소를 참조하는 멤버 함수는 top()입니다.2.3 stack의 원소를 제거하는 멤버 함수는 pop()입니다./*stack 컨테이너*/#include #include using namespace std; int main(void){ stack st; st.push(10); st.push(20); st.push(30); while (!st.empty()) { cout

뇌를 자극하는 C++ STL 이것만은 알고 갑시다 10장

[4번] /*다음은 v1과 v2를 v3로 합병 정렬하는 코드입니다.오류를 찾고 코드를 알맞게 고치세요*/#include #include #include #include using namespace std; int main(void){ vector v1; v1.push_back(10); v1.push_back(40); v1.push_back(50); vector v2; v2.push_back(20); v2.push_back(30); v2.push_back(60); //사실 데이터를 입력하는 순서가 오름차순이므로 문제는 없지만 원칙상 정렬을 해야한다 sort(v1.begin(), v1.end()); sort(v2.begin(), v2.end()); vector v3(6); merge(v1.begin(), v..

뇌를 자극하는 C++ STL 이것만은 알고 갑시다 9장

[2번]/*STL의 less 함수 객체와 같은 동작을 하는 사용자 Less 함수 객체를 구현하세요.단, Less는 어댑터 적용이 가능해야 합니다*/#include #include #include #include using namespace std; template struct Less :public binary_function{ bool operator()(const T &left, const T &right) const { return left < right; }}; int main(void){ vector v; v.push_back(50); v.push_back(40); v.push_back(30); v.push_back(20); v.push_back(10); cout

뇌를 자극하는 C++ STL 이것만은 알고 갑시다 7장

1. 시퀀스 컨테이너는 원소의 상대적인 순서가 유지된다. 연관 컨테이너는 특정 정렬 기준에 따라 원소가 정렬된다. 2. < 연산자 함수 객체인 less를 기준으로 정렬된다. 3. 중복을 허용하지 않기 때문에 저장이 되지 않는다. 4. 중복을 허용하므로 저장이 된다. 5. set는 컨테이너에 원소로 key만 저장한다. map은 컨테이너에 원소로 key와 value의 쌍을 저장한다. 6. lower_bound()는 찾는 원소의 순차열 시작 반복자를 반환한다. upper_bound()는 찾는 원소의 순차열 끝 반복자를 반환한다. 원소를 찾지 못했을 경우 lower_bound()와 upper_bound가 같다. 7. 시퀀스 컨테이너는 insert()가 실행되면 가리키는 반복자의 위치에 삽입된다. 연관 컨테이너는..

뇌를 자극하는 C++ STL 이것만은 알고 갑시다 6장

1. vector 컨테이너의 특징i) 시퀀스 컨테이너입니다.iii) 배열 기반 컨테이너입니다.v) 임의 접근 반복자를 제공합니다.vi) reserve() 멤버 함수를 제공합니다. 2. deque 컨테이너의 특징i) 시퀀스 컨테이너입니다.iii) 배열 기반 컨테이너입니다.iv) 컨테이너 앞, 뒤로 추가/제거가 가능합니다.v) 임의 접근 반복자를 제공합니다. 3. list 컨테이너의 특징i) 시퀀스 컨테이너입니다.ii) sort(), splice() 멤버 함수를 제공합니다.iv) 컨테이너 앞, 뒤로 추가/제거가 가능합니다.vii) 빠른 시간(상수 시간)에 원소를 삽입, 삭제할 수 있습니다. 4. 10 100 20 30 40 50 N 5. size: 5, capacity: 10 6. clear() 멤버 함수 ..

뇌를 자극하는 C++ STL 이것만은 알고 갑시다 5장

1.1 STL 구성 요소에서 객체들을 저장하는 객체를 컨테이너라 합니다.1.2 컨테이너의 원소를 순회하고 참조하는 객체를 반복자라 합니다.1.3 여러 가지 문제 해결을 위한 반복자와 동작하는 함수 템플릿을 알고리즘이라 합니다. 2.1 컨테이너 원소가 자신만의 삽입 위치를 갖는 것을 표준 시퀀스 컨테이너(standard sequence container)라 합니다.2.2 컨테이너 원소가 특정 정렬 기준에 의해 자동 정렬된 것을 표준 연관 컨테이너(standard associative container)라 합니다. 3.1 배열 기반 컨테이너인 vector와 deque는 임의 접근 반복자를 제공하며, 그 외 모든 STL 컨테이너는 양방향 반복자를 제공합니다.3.2 순차열은 원소의 순서 있는 집합을 의미하며, ..