반응형

오블완 18

C++, 클래스 스택 구현하기 stack

스택의 기본 동작(push, pop, top)을 직접 구현한 코드입니다. C++의 표준 라이브러리에서는 std::stack이라는 컨테이너 어댑터를 제공합니다. 사용자가 구현한 stack 클래스와 비교하면 다음과 같은 차이가 있습니다. std::stack: 빠르게 사용하고 싶을 때, 기본적인 스택 동작을 수행할 때 적합.사용자 정의 클래스: 스택의 동작을 확장하거나 커스터마이징이 필요할 때 적합.  #include #include class Stack {private: std::vector data; // 스택 데이터 저장public: // 스택에 값을 추가 void push(int value) { data.push_back(value); } // 스택의 최상단 값을..

C_C++ 2024.11.27

C++, 스택 STL::stack 사용하기

C++ 표준 라이브러리에서는 std::stack이라는 컨테이너 어댑터를 제공합니다. 이를 사용하면 쉽게 스택을 사용할 수 있습니다.#include #include int main() { std::stack s; // 스택에 값 추가 s.push(10); s.push(20); s.push(30); // 스택의 최상단 요소 출력 std::cout (Output)Top element: 30 Top element after pop: 20 Popping: 20 Popping: 10  https://gonyzany.tistory.com/729 C++, 클래스 스택 구현하기 stack스택의 기본 동작(push, pop, top)을 직접 구현한 코드입니다. C++의 표준 라이브러리..

C_C++ 2024.11.26

C++, 명령행(command line) 사용해서 텍스트 파일 출력하기

C++에서 명령행 인자를 사용하여 텍스트 파일을 출력하는 방법을 살펴보겠습니다. 기본적인 예제 코드를 통해 이해하기 쉽게 설명하겠습니다.1. 프로그램 개요사용자는 프로그램 실행 시 파일 이름을 명령행 인자로 전달합니다.프로그램은 해당 파일을 열어 내용을 출력합니다.#include #include #include using namespace std;int main(int argc, char* argv[]) { // 명령행 인자가 부족한 경우 오류 메시지 출력 if (argc != 2) { cerr " 3. 코드 설명명령행 인자 처리:argc: 명령행 인자의 개수를 나타냅니다.argv: 명령행 인자를 문자열로 저장한 배열입니다.argv[0]: 실행 파일의 이름이고, argv[1]에 파..

C_C++ 2024.11.25

C++, 10진수 8진수 16진수 출력

cout C++에서 8진수와 16진수를 출력하려면 입출력 조작자를 사용하여 숫자의 기본 출력 형식을 설정할 수 있습니다. 다음은 예제 코드입니다.#include using namespace std;int main() { int num = 255; // 기본 10진수 출력 cout Decimal: 255 Octal: 377 Hexadecimal: ff Hexadecimal (uppercase): FF 설명:oct: 8진수 출력 형식으로 설정.hex: 16진수 출력 형식으로 설정.uppercase: 16진수의 문자(A-F)를 대문자로 출력.기본적으로 dec은 10진수 출력 형식이며, 명시적으로 지정하지 않아도 됩니다.참고:std::cout은 출력 형식을 설정한 후 계속 유지합니다. 원래 상태..

C_C++ 2024.11.24

C++, 소수점 자릿수 지정, 오른쪽 정렬 줄맞추기

소수점 자릿수를 지정하려면 iomanip 헤더에서 제공하는 **std::setprecision**을 사용합니다. 고정된 소수점 자릿수를 표시하려면 **std::fixed**를 함께 사용해야 합니다.#include #include // std::fixed, std::setprecisionint main() { double value = 123.456789; // 소수점 2자리로 고정 std::cout Fixed to 2 decimal places: 123.46Fixed to 4 decimal places: 123.4568Default: 123.457 2. 데이터 정렬2-1. 텍스트 정렬숫자도 std::setw를 활용해 정렬할 수 있습니다.#include #include int main()..

C_C++ 2024.11.23

C++, setw 출력 폭 지정하기

C++에서 cout을 사용하여 출력 폭을 지정하려면 **std::setw**를 사용할 수 있습니다. 이 기능은 헤더에 정의되어 있으며, 출력할 데이터의 폭을 설정하는 데 사용됩니다.#include #include // setw 포함int main() { std::cout 추가 예제: 정렬 및 채우기1. 채우기 문자 설정 (std::setfill)출력 폭을 채우기 문자로 채울 수 있습니다.#include #include int main() { std::cout 2. 정렬 설정기본적으로 std::setw는 오른쪽 정렬을 사용합니다. std::left 또는 std::right를 사용하여 정렬 방향을 변경할 수 있습니다.#include #include int main() { std::cout..

C_C++ 2024.11.22

C++, 텍스트 파일 저장하기 읽어오기 fstream

C++에서 텍스트 파일을 저장하고 읽어오는 방법은 파일 입출력을 지원하는 헤더를 사용하여 구현할 수 있습니다. 아래는 텍스트 파일에 데이터를 저장하고 다시 읽어오는 예제입니다. 1. 텍스트 파일 저장하기 (쓰기)파일에 데이터를 저장하려면 std::ofstream을 사용합니다.#include #include // 파일 입출력 헤더int main() { std::ofstream outFile("example.txt"); // 쓰기 모드로 파일 열기 if (!outFile) { std::cerr  2. 텍스트 파일 읽어오기파일에서 데이터를 읽으려면 std::ifstream을 사용합니다.#include #include // 파일 입출력 헤더#include // 문자열 처리를 위한..

C_C++ 2024.11.21

C++ 예외처리 Exception Handling

C++에서 예외 처리(Exception Handling)는 프로그램 실행 중 발생할 수 있는 예외적인 상황(에러)을 처리하기 위한 메커니즘입니다. 이를 통해 프로그램의 비정상 종료를 방지하고, 적절히 에러를 처리할 수 있습니다.C++ 예외 처리는 주로 try, throw, catch 키워드를 사용하여 구현됩니다. 1. 기본 구조try {     // 예외가 발생할 가능성이 있는 코드 } catch (exception_type e) {     // 예외 처리 코드 } try: 예외가 발생할 가능성이 있는 코드를 작성하는 블록.throw: 예외가 발생했을 때 예외 객체를 던지는 명령.catch: 던져진 예외를 받아 처리하는 블록.2. 간단한 예제#include int main() { try { ..

C_C++ 2024.11.20

C++, <vector> 템플릿 이용하기

은 C++ 표준 라이브러리에서 제공하는 동적 배열 컨테이너로, std::vector 클래스를 정의합니다. 동적 배열은 크기가 가변적이어서 런타임에 요소를 추가하거나 제거할 수 있습니다.std::vector는 내부적으로 메모리를 효율적으로 관리하며, 배열과 유사한 방식으로 요소에 접근할 수 있는 기능을 제공합니다. 또한 자동으로 메모리를 재할당하면서 크기를 조정합니다. 주요 특징동적 크기 조정요소를 추가하거나 제거할 때, 자동으로 크기를 조정합니다.(초기 용량이 초과되면 메모리를 재할당하여 더 큰 공간을 확보합니다.)배열과 유사한 인덱싱요소에 배열처럼 인덱스를 통해 접근할 수 있습니다. (O(1) 시간 복잡도)STL과의 통합std::vector는 이터레이터를 지원하며, 다른 STL 알고리즘과 잘 통합됩니다..

C_C++ 2024.11.19

C++, 클래스 템플릿 class template

C++에서 클래스 템플릿은 여러 타입에 대해 동작할 수 있는 일반화된 클래스를 작성할 수 있도록 도와줍니다. 이를 통해 코드의 재사용성과 유연성을 높일 수 있습니다. 클래스 템플릿은 아래와 같은 방식으로 선언하고 사용할 수 있습니다.1. 클래스 템플릿 선언#include using namespace std;template // 또는 `class T`라고 써도 동일class MyClass {private: T data; // T 타입의 멤버 변수public: // 생성자 MyClass(T value) : data(value) {} // 데이터 출력 void printData() { cout   2. 클래스 템플릿 사용int main() { // int 타입으로..

C_C++ 2024.11.18
반응형