C#의 String과 StringBuilder
C#에서 string과 StringBuilder는 문자열을 처리하기 위한 두 가지 주요 클래스입니다. string 클래스는 불변(immutable) 객체이고, StringBuilder 클래스는 가변(mutable) 객체입니다. string 클래스 string 객체는 한 번 만들면 변경할 수 없습니다. 이것을 불변(immutable) 객체라고 합니...
C#에서 string과 StringBuilder는 문자열을 처리하기 위한 두 가지 주요 클래스입니다. string 클래스는 불변(immutable) 객체이고, StringBuilder 클래스는 가변(mutable) 객체입니다. string 클래스 string 객체는 한 번 만들면 변경할 수 없습니다. 이것을 불변(immutable) 객체라고 합니...
제네릭 컬렉션 컬렉션 이름 설명 버전 List<T> 요소를 순서대로 저장하는 동적 배열 .NET 2.0 LinkedList<T> 각 요소가 컬렉션 내의 다음 요소와 이전 요소를 가리...
C# 제네릭(Generic)은 타입 안전성과 코드 재사용성을 극대화하기 위해 도입된 기능입니다. 제네릭을 알아보기 전, 기존 C# 1.0에서는 기본 형식(Primitive types)으로 컬렉션 객체를 사용했습니다. 예를 들어, ArrayList의 경우에는 모든 타입의 컬렉션을 받을 수 있도록 object타입을 사용합니다. 따라서, 모든 기본 타...
컨테이너 이름 설명 버전 array 고정 크기 배열, 크기가 컴파일 시에 결정됨 C++11 vector 동적 배열, 인덱스 접근 가능 list 양방향 ...
라이브러리 C#: System.Collections.Generic, Dictionary<K, V> Python: {:}, dict() C++: <unordered_map>, std::unordered_map<K, V> C++에서는 딕셔너리와...
탐색 시간 평균: $O(1)$ 최악: $O(N)$ (충돌 발생시) 요소 추가/삭제 평균: $O(1)$ 최악: $O(N)$ (충돌 발생시) 해시 테이블(Hash Table)은 키(Key) 를 값(Value) 에 매핑하여 키-값 쌍을 효율적으로 저장하고 ...
라이브러리 C++: <queue>, std::priority_queue<T> C#: System.Collections.Generic, PriorityQueue<T, P> JAVA: java.util, PriorityQueue<E> Python: impo...
C#의 virtual과 override 키워드는 상속과 다형성(polymorphism)을 구현하는데 핵심적인 역할을 합니다. 이 두 키워드를 사용하면 기본 클래스의 메서드를 파생 클래스에서 재정의할 수 있으며, 이를 통해 코드의 유연성과 재사용성을 높일 수 있습니다. 다형성(Polymorphism) 다형성은 같은 인터페이스를 통해 서로 다른 데이...
null이란, “값이 없는” 혹은 “어떤 객체도 참조하지 않은” 참조형 변수를 말합니다. C#에서 null을 가질 수 있는 타입은 참조 타입입니다. 값 타입은 null일 수 없습니다. 다시 말해, C#에서 null은 “어떤 객체도 참조하지 않은 참조형 변수의 디폴트 값”이라고 할 수 있습니다. 값 형식에서의 디폴트 값(초기화 하지 않을 때 가지는...
C#에서 as와 is 연산자는 객체의 타입을 안전하게 처리하기 위해 중요한 역할을 합니다. 이러한 연산자들은 형 변환과 타입 확인 과정을 간소화하여 코드의 안정성과 가독성을 향상시키는 데 도움을 줍니다. is 키워드 is 키워드는 객체가 특정 타입인지 확인하는 데 사용됩니다. 이 연산자는 객체의 타입이 지정된 타입과 호환되는지 검사하고, 그 결...