프로그래밍 언어(154)
-
C++ 초급 - 6. 배열과 문자열 (5 - std::string (C++ 표준 문자열))
📌 6.5 std::string (C++ 표준 문자열)C++의 std::string 클래스는 C-스타일 문자열(char[])의 단점을 개선한 문자열 처리 클래스이다.C++ 표준 라이브러리 헤더를 포함하면 사용할 수 있으며,자동 메모리 관리, 편리한 문자열 조작 기능 제공, 안전한 크기 조절 등의 장점이 있다.std::string은 C++에서 기본적인 문자열 처리를 할 때 권장되는 방식이며,문자열 비교, 연결, 검색, 부분 문자열 추출 등의 다양한 기능을 제공한다.📌 1. std::string 선언 및 초기화🔹 (1) std::string 선언 방식💡 기본 문법#include std::string 문자열이름 = "문자열";💡 예제: std::string 선언 및 초기화#include #inclu..
2025.02.22 -
C++ 초급 - 6. 배열과 문자열 (4 - C-스타일 문자열 (char str[]))
📌 6.4 C-스타일 문자열 (char str[])C-스타일 문자열(C-style String)은 char 배열을 사용하여 문자열을 저장하는 방식이다.C언어에서 사용되던 문자열 처리 방식으로, 문자 배열(char str[])을 활용하여 문자열을 저장한다.C++에서는 std::string이 제공되지만, 저수준 문자열 처리나 기존 C 코드와의 호환성을 위해 C-스타일 문자열이 여전히 사용됨.C-스타일 문자열은 문자 배열과 종료 문자(\0)로 구성되며,문자열 조작을 위해 헤더의 여러 문자열 처리 함수를 활용한다.📌 1. C-스타일 문자열 선언 및 초기화🔹 (1) C-스타일 문자열 선언💡 기본 문법char 문자열이름[문자열길이] = "문자열";💡 예제: C-스타일 문자열 선언 및 초기화#include..
2025.02.22 -
C++ 초급 - 6. 배열과 문자열 (3 - std::vector)
📌 6.3 std::vector (C++98부터 사용 가능)C++의 std::vector는 배열의 단점을 보완한 동적 크기 조절이 가능한 컨테이너이다.배열(int arr[5];)은 고정된 크기를 가지지만, std::vector는 필요에 따라 크기가 자동으로 조절됨.또한 안전한 메모리 관리 및 편리한 기능 제공(push_back, size, at 등)으로 효율적인 데이터 관리를 가능하게 한다.std::vector는 헤더를 포함하여 사용 가능하다.📌 1. std::vector 선언 및 초기화🔹 (1) std::vector 기본 선언💡 기본 문법#include std::vector 변수명;💡 예제: std::vector 선언 및 초기화#include #include int main() { st..
2025.02.22 -
C++ 초급 - 6. 배열과 문자열 (2 - 다차원 배열 (int matrix[3][3];))
📌 6.2 다차원 배열 (int matrix[3][3];)다차원 배열(Multidimensional Array)은 2차원 이상의 데이터를 저장할 수 있는 배열이다.특히 2차원 배열(행렬)은 행(Row)과 열(Column) 구조로 데이터를 저장할 때 유용하게 사용된다.C++에서는 정적(고정 크기) 다차원 배열과 동적(가변 크기) 다차원 배열을 사용할 수 있다.📌 1. 2차원 배열 선언 및 초기화🔹 (1) 2차원 배열 선언 방식💡 기본 문법데이터타입 배열이름[행][열];💡 예제: 2차원 배열 선언 및 초기화#include int main() { int matrix1[3][3]; // 선언만 하고 초기화하지 않음 (쓰레기 값 저장) int matrix2[3][3] = { // 행..
2025.02.22 -
C++ 초급 - 6. 배열과 문자열 (1 - 배열 (int arr[5];))
📌 6. 배열과 문자열C++에서 배열(Array)과 문자열(String)은 데이터를 효율적으로 저장하고 처리하는 중요한 자료구조이다.기본적인 배열과 다차원 배열, C-스타일 문자열, C++ 표준 라이브러리의 std::vector 및 std::string을 학습한다.📌 6.1 배열 (int arr[5];)배열(Array)은 같은 데이터 타입을 연속된 메모리 공간에 저장하는 자료구조이다.C++에서는 정적 배열(int arr[5];)과 동적 배열(new int[5];)을 사용할 수 있다.배열은 빠른 데이터 접근이 가능하지만, 크기가 고정되며, 관리가 어렵다는 단점이 있다.📌 1. 배열 선언 및 초기화배열을 선언할 때는 데이터 타입과 크기를 지정해야 한다.💡 배열 선언 문법데이터타입 배열이름[배열크기];..
2025.02.12 -
C++ 초급 - 5. 포인터와 참조 (Pointers and References) (4 - 스마트 포인터 (std::unique_ptr, std::shared_ptr, std::weak_ptr))
📌 5.4 스마트 포인터 (std::unique_ptr, std::shared_ptr, std::weak_ptr)C++11부터 스마트 포인터(Smart Pointer)가 도입되어,개발자가 직접 delete를 호출하지 않아도 메모리가 자동 관리된다.스마트 포인터를 사용하면 메모리 누수를 방지하고, 포인터의 안전성을 향상시킬 수 있다.C++ 표준 라이브러리 헤더를 포함하면 사용할 수 있다.📌 1. 스마트 포인터의 필요성일반 포인터(new/delete)를 사용하면 메모리 누수(Memory Leak)가 발생할 위험이 있다.특히, 예외(Exception)가 발생하는 경우 delete가 호출되지 않아 누수가 발생할 수 있다.💡 일반 포인터의 문제점 (메모리 누수 발생)#include void memoryLe..
2025.02.12