std::vector를 사용하다보면 많이 사용하는 구문 중 하나는 현재 std::vector가 비어있는지 확인하는 것이다. 이러한 구문을 표현하는 방법이 아래와 두 가지가 있을 것이다. * std::vector.size() == 0 std::vector myVector; if (myVector.size == 0) printf("Warning: Empty vector"); if (myVector.size > 0) printf("Vector is not empty"); * std::vector.empty() std::vector myVector; if (myVector.empty()) printf("Warning: Empty vector"); if (!myVector.empty()) printf("Vecto..
기존의 소스 코드에 쓰고 있는 forward declaration을 그대로 사용했더니 코드리뷰에서 typedef를 쓰지 말라는 리뷰가 왔다. 그래서 찾아보니 모던C++에서는 이제 typedef를 사용하지 않고 using 키워드를 사용한다고 하였다. 따라서 각 키워드의 다른 점을 살펴보았다. * typedef vs using 차이점 typedef std::shared_ptr MyClassPtr; using MyClassPtr = std::shared_ptr; 위와 같이 보면 일단 문법이 다른 것을 알 수 있다. 기존의 typedef 키워드의 문법은 앞의 타입형을 뒤에 있는 이름으로 축소해서 사용하겠다는 것을 의미하고, using 키워드는 약간 변수 할당과 비슷한 느낌으로 MyClassPtr에 std::sh..
* 최근에 C++로 코딩하면서 옛날에 머물러있었던 C++ 개발 실력이었기 때문에 새로 보는 내용들이 아주 많다. 지금은 그냥 여기서 그렇게 하고 있으니까 따라한다는 마음이 크지만, 조금씩은 왜 그렇게 하고 있는지 알아가면서 C++ 관련 글도 정리하면서 쓰려고 한다. 기존에 보지 못했던 키워드 중 가장 먼저 눈에 들어온 것은 enum class 였다. * enum class C++11에서는 기존의 enum과 다른 새로운 키워드 조합인 enum class를 선호이고 있다. 사용법은 기존의 enum에서 크게 벗어나지는 않으나 가장 다른 점은 개발자들이 기존의 enum이 가지고 있었다고 주장하는 문제점들을 해결하고자 하였다. 그 중 가장 대표적인 것은 바로 기존의 C++의 enum은 내부적으로 int와 동일하게..
* 이전글2016/05/06 - [C++ 기본] Hello World 시작2016/05/10 - [C++ 기본] 클래스와 상속, friend, virtual, template 키워드 등2016/05/13 - [C++ 응용] 퀵, 머지, 힙, 버블, 선택, 삽입 정렬 알고리즘 구현 * 이번에는 변수형과 기본 함수들에 대해서 간단하게 살펴볼 것이다. 기본적인 내용이므로 레퍼런스로만 봐도 되도록 정리할 것이다. * 변수형: 각 변수형의 크기는 처음에는 크게 신경쓰지 않아도 되지만, 나중에 TCP 연동을 하거나 메모리 취적화가 필요할 때에는 조금씩 신경을 써야할 것이다. - char: 1byte=8bit 크기의 문자를 하나 저장- short: 2byte=16bit 크기의 정수를 저장- int: 4byte=32b..
* 알고리즘의 기본인 정렬 알고리즘들의 대표적인 케이스들을 직접 C++로 구현해보았다. C++을 이용해서 재귀적으로도 처리하기도 하고, O(nlogn)이나 O(n^2)에 대한 알고리즘 분석의 기본이 되므로 기본적으로 알고 있으면 유용하다. * Quick Sort: 퀵소트는 하나의 피봇이 있어서 피봇보다 작은 값들을 앞으로, 큰 값들을 뒤로 보낸 다음, 다시 나뉘어진 그룹을 정렬하는 top-down 식 정렬 알고리즘이다. #include using namespace std; void quickSort(int arr[], int size) { int pivot = arr[0]; int cursor = 0; for (int i = 1; i arr[i]) { c..
* 이전글2016/05/06 - [C++ 기본] Hello World 시작 * 면접이 조만간 잡히게 될 것 같아 우선적으로 복습이 필요한 내용인 클래스와 상속에 대해서 문법을 간단하게 살펴보고 hackerrank.com이나 기본 소팅 알고리즘을 구현해보는 것을 할 예정이다. * 클래스 선언: 클래스 선언은 클래스의 전체적인 구조를 나타내며, 변수에 대한 정의와 함께 함수의 구조를 정의한다. 아래와 같은 구조는 주로 헤더 파일에 들어간다. Car.h에 정의해조자.class Car { private: int wheels; int price; public: void setWheels(int); void setPrice(int); int getWheels(void); int getPrice(void); }; *..
- Total
- Today
- Yesterday
- 뽐뿌
- 서울
- gae
- K100D
- php
- HTML5
- Android
- ny-school
- 강좌
- Writing
- TIP
- 팁
- gre
- c++
- 샷
- 탐론 17-50
- lecture
- 안드로이드 앱 개발 기초
- GX-10
- java
- 사진
- HTML5 튜토리얼
- 삼식이
- Javascript
- Python
- 속깊은 자바스크립트 강좌
- 자바스크립트
- 안드로이드
- mini project
- google app engine
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |