C++ 136

Accelerated C++ 4장 연습문제

4-2. 1~100까지의 정숫값 제곱을 계산하는 프로그램을 작성해보세요. 이 프로그램은 2개 열을 출력해야 합니다. 첫 번째 열은 값을 나열하고 두 번째 열은 해당 값을 제곱한 결과를 나열합니다. 값들을 열에 맞춰 정렬시키는 데는 setw 함수를 사용하도록 출력을 처리해보세요. 4-3. [연습문제 4-2]에서 다룬 프로그램을 수정해 1000까지의 제곱값을 계산한다고 생각해봅시다. 이 때 setw 함수의 인수가 제대로 변경되지 않으면 어떤 상황이 일어날까요? setw 함수의 인수 대신에 임의의 변수를 사용해 열에 맞춰 정렬시키는 방법을 사용해보세요. 4-4. 여러분이 작성한 제곱 값을 구하는 프로그램에서 int 값 대신 double 값을 사용하도록 바꿔보세요. 또한 값들을 열에 맞춰 정렬시킬 때 조작어를 ..

C++/Accelerated C++ 2019.10.08 (5)

Accelerated C++ 3장 연습문제

3-2. 정수들의 집단에서 사분위수들을 찾아서 출력하는 프로그램을 작성해보세요. 3-3. 입력에서 각 단어가 등장한 횟수를 세는 프로그램을 작성해보세요. 3-4. 입력에서 길이가 가장 긴 문자열의 길이와 가장 짧은 문자열의 길이를 알려주는 프로그램을 작성해보세요. 3-5. 한 번에 여러 학생의 성적을 기록하는 프로그램을 작성해보세요. 프로그램은 벡터 2개를 동기화해 처리할 수 있습니다. 첫 번째 벡터는 학생 이름을 저장하고, 두 번째 벡터는 입력을 읽어 들여 계산한 최종 점수를 저장해야 합니다. 과제 점수 개수는 고정되어야 합니다. 3-6. 만약 학생의 점수가 모두 입력되지 않으면 31/76p에서 살펴본 평균 점수 계산은 0으로 나눌 수 있습니다. 0으로 나누는 것은 C++에서 정의되지 않은 동작이므로 ..

C++/Accelerated C++ 2019.10.07

뇌를 자극하는 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() 멤버 함수 ..