목록Programming (115)
Nagie's DevStory
std::vector는 C++ 표준 라이브러리(STL)에서 제공하는 가변 크기 컨테이너다. C++ 11 표준부터 사용할 수 있고 헤더에 정의되어 있다. 특징 1. 동적 크기 조절 : 벡터는 동적으로 크기를 조절할 수 있다. 초기 크기를 정의한 후에도 요소를 추가하거나 삭제할 수 있어 메모리의 효율적인 사용과 크기 조절이 필요한 상황에 유리하다. 2. 빠른 임의 접근 : 벡터는 근본적으로 동적 메모리기 때문에 배열처럼 인덱스를 사용하여 빠르게 접근할 수 있다. 마찬가지로 인덱스를 알고 있다면 해당 요소에 접근하는 시간은 O(1)이다. 3. 메모리 관리 : 벡터는 요소를 메모리에서 연속적으로 저장하므로 메모리의 효율적인 사용이 가능하다. 4. std::vector의 크기 및 용량 : 벡터는 현재 크기(Siz..
std::array는 C++ 11 표준 부터 사용할 수 있다. C 스타일 배열과 동일한 역할을 하며 헤더에 정의가 되어있고 그다지 존재감이 있어 보이지는 않는다... 다음은 std::array의 사용 예시다. #include #include int main() { std::array num = { 1,2,3,4,5 }; std::cout
C++는 C만큼 다루기 어려운 언어다. 오히려 C보다 더 어려운 거 같기도 하다. 간혹 C++가 쉽다는 사람과 마스터했다는 사람이 보이긴 하는데 이런 말을 들을때마다 여러 가지 생각이 든다. C++는 호환성을 위해 레거시 문법을 잘 쳐내지도 않으며 심지어 C의 문법까지 사용이 가능한데 '이걸 마스터할 수 있다고?' 라는 생각이 절로 들며 C++를 사용하고 공부할 때 마다 오만함이 자연스럽게 수그러든다. 사람을 겸손하게 만드는 무언가가 있는 언어라고 생각하며 앞으로는 C++ 관련 새로운 기능이 나오거나 내가 몰랐던 기능을 공부하게 되면 이 게시판에 글을 작성할 예정이다. 혹시라도 이 게시물을 보는 사람이 있다면 절망하지 말고 꿋꿋하게 버텨서 결과를 내길 기원한다. 지금 포기해 버리면 투자한 시간이 아깝잖아?
예외 처리는 프로그램의 안정성을 높여주며 예외 상황을 처리하는 방법을 정의하는 데 도움이 된다. C++에서 예외 처리를 구현하는 주요 키워드는 다음과 같다. 키워드 설명 try 예외가 발생할 수 있는 코드 블록을 나타낸다. catch 예외를 처리하는 코드 블록을 나타낸다. 'catch'블록은 예외가 발생하면 실행된다. throw 예외를 발생시키는 데 사용되며 'throw' 키워드 뒤에 예외 객체를 지정한다. std::exception (예외 클래스) 예외는 예외 클래스의 인스턴스로 나타내며, 예외 클래스는 'std::exception'클래스를 상속받아 사용자 정의 예외 클래스를 만들 수 있으며 사용자 정의 예외 클래스는 예외 정보를 저장하고 전달하는 데 사용된다. 아래는 위의 키워드를 사용해 예외 처리를..
C의 파일 입출력처럼 C++ 역시 파일 모드란게 존재하며 표준 C++에서 지원하는 파일 모드는 아래의 표와 같다. 파일 모드설명std::ios::in 파일을 읽기 위해 사용되며 파일을 읽을 수 있지만 쓸 수는 없다. std::ios::out 파일을 쓰기 위해 사용되며 파일을 쓸 수 있지만 읽을 수는 없다. std::ios::app 파일 끝에 데이터를 추가하기 위해 사용된다. 기존 파일의 끝에 데이터를 추가할 수 있다. std::ios::binary 이진 파일 모드로 사용된다. 파일을 이진 모드로 열 때 사용되며 파일의 데이터를 이진 파일로 처리한다. std::ios::ate 파일을 열 때 파일 끝에 커서를 위치시키는 데 사용된다 파일을 열면 파일 끝에서 시작하며 파일을 읽고 쓸 수 있다. std::ios..