전체 글(131)
-
파일 입출력
9.2 파일 입출력C++는 파일 작업을 위한 포괄적인 기능을 제공합니다.9.2.1 텍스트 파일 읽기/쓰기#include #include #include int main() { // 파일 쓰기 std::ofstream outFile("example.txt"); if (!outFile) { std::cerr > word) { std::cout 9.2.2 이진 파일 읽기/쓰기#include #include #include struct Person { char name[50]; int age; double salary;};int main() { // 이진 파일 쓰기 std::ofstream outFile("data.bin", std::i..
2025.03.28 -
고급 주제
고급 주제이 챕터에서는, C++의 고급 주제와 최신 기능들을 살펴봅니다. 이러한 고급 기능들은 더욱 효율적이고 안전한 코드를 작성하는 데 도움이 됩니다.9.1 예외 처리(Exception Handling)예외 처리는 프로그램 실행 중 발생하는 오류를 처리하는 메커니즘입니다.9.1.1 예외의 기본 개념#include #include // 표준 예외 클래스double divide(double a, double b) { if (b == 0.0) { throw std::invalid_argument("0으로 나눌 수 없습니다"); } return a / b;}int main() { try { double result = divide(10.0, 2.0); ..
2025.03.28 -
챕터8. 실습 문제
8.6 실습 문제문제 1: 학생 성적 관리 시스템STL 컨테이너와 알고리즘을 사용하여 학생 성적을 관리하는 프로그램을 작성하세요:#include #include #include #include #include #include #include // 학생 정보를 담는 구조체struct Student { std::string name; std::string id; std::vector scores; // 여러 과목 점수 // 평균 점수 계산 double getAverage() const { if (scores.empty()) return 0.0; return static_cast(std::accumulate(scores.begin(), scores...
2025.03.28 -
함수 객체와 람다 표현식
8.5 함수 객체와 람다 표현식8.5.1 함수 객체(Functors)함수처럼 동작하는 객체입니다:#include #include #include #include // 함수 객체// 사용자 정의 함수 객체class Multiplier {private: int factor; public: Multiplier(int f) : factor(f) {} int operator()(int x) const { return x * factor; }};// 사용자 정의 비교 함수 객체class CompareBySecond {public: template bool operator()(const T& a, const T& b) const { retur..
2025.03.28 -
STL 알고리즘
8.4 STL 알고리즘STL 알고리즘은 컨테이너의 요소를 처리하는 다양한 함수를 제공합니다.8.4.1 비수정 시퀀스 연산요소를 수정하지 않고 조사하는 알고리즘:#include #include #include #include // accumulate// 홀수 여부 판별 함수bool isOdd(int n) { return n % 2 != 0;}int main() { std::vector vec = {5, 7, 3, 1, 9, 2, 8, 4, 6}; // all_of: 모든 요소가 조건을 만족하는지 확인 bool allOdd = std::all_of(vec.begin(), vec.end(), isOdd); std::cout 5; }); if (it2 != ve..
2025.03.28 -
STL 반복자
8.3 STL 반복자반복자(Iterator)는 컨테이너의 요소에 접근하고 순회하는 통일된 방법을 제공합니다.8.3.1 반복자 개념과 카테고리STL은 다음과 같은 반복자 카테고리를 정의합니다:입력 반복자(Input Iterator): 한 번에 한 방향으로만 이동 가능, 읽기 전용출력 반복자(Output Iterator): 한 번에 한 방향으로만 이동 가능, 쓰기 전용순방향 반복자(Forward Iterator): 한 방향으로 여러 번 이동 가능양방향 반복자(Bidirectional Iterator): 양방향으로 이동 가능임의 접근 반복자(Random Access Iterator): 임의의 위치로 바로 이동 가능#include #include #include #include #include // 반복자 ..
2025.03.28