본문 바로가기

C++11

cloc 를 사용하여 코드 라인수 세기 이전 포스팅에서 powershell 을 사용한 코드 라인수 세기 방식에 대해 소개한 적이 있는데요~ http://iamaman.tistory.com/1577 검색을 해보니 역시나…… cloc 라는 프로그램이 있더군요. cloc 의 홈 페이지는 아래와 같습니다. http://cloc.sourceforge.net/ 또는 이전에 소개했던 Chocolatey 을 사용하여 아래와 같이 설치 할 수 도 있더군요. choco install cloc 다운로드 주소는 아래와 같습니다. http://sourceforge.net/projects/cloc/files/cloc/ 현재 최신 버전은 1.62 입니다. 현재 저는 윈도우 64비트를 사용 중이라 위 그림과 같은 페이지에서 cloc-1.62.exe 을 다운로드 받았습니다.. 2015. 5. 20.
Python Cartesian Product 이전 포스팅에서 C++, MATLAB 을 사용하여 Cartesian Product 를 구하는 방법에 대해 알아본 적이 있습니다. 2013/08/18 - [programming language/MATLAB] - MATLAB 모든 경우의 수 뽑기 Cartesian Product 2014/03/01 - [programming language/C/C++] - C++ Cartesian Product 2013/08/18 - [programming language/powershell] - Powershell 경우의 수 조합 다 구하기(Cartesian Product) 이번에는 python 에서 Cartesian Product 를 구하는 방법에 대해 확인해 보니 이전의 방법들 보다 훨씬 더 쉽더군요. 아래 주소에 그 .. 2014. 12. 5.
C++ file path 나누기 SplitPath 프로그래밍을 하다 보면 파일 또는 폴더의 path 를 자주 다루게 됩니다. 아래 포스팅에서는 Autohotkey 에서 SplitPath 함수를 사용해서 file path 를 구분하는 방법에 대해 소개한 적이 있는데~ 2013/11/14 - [programming language/Autohotkey] - Autohotkey SplitPath 를 이용하여 폴더, 파일명, 확장자, 드라이브 구분하기 오늘은 C++ 를 사용한 file path 구분 방법에 대해 소개하려 합니다. 코드는 굉장히 간단한데요~ 위 코드와 같이 stringstream 과 getline 함수를 사용하고~ C:/Windows/System32/vbscript.dll 라는 path 를 '/' 에 따라 나눠보면~ 다음과 같은 결과가 나옵니다. .. 2014. 7. 18.
C++ Cartesian Product 이전 포스팅들에서도 소개한 Cartesian Product 를 C++ 를 사용하여 구성하는 방법에 대해 소개해 드리려 합니다. 2013/08/18 - [programming language/MATLAB] - MATLAB 모든 경우의 수 뽑기 Cartesian Product 2013/08/18 - [programming language/powershell] - Powershell 경우의 수 조합 다 구하기(Cartesian Product) 아래 주소를 보니 Cartesian Product 와 관련하여 좋은 예제들이 많이 있더군요. http://stackoverflow.com/questions/5279051/how-can-i-create-cartesian-product-of-vector-of-vectors .. 2014. 3. 1.
C++ XML parser pugixml 오늘은 간단하게 사용할 수 있는 C++ xml parser 하나 소개해 드리려 합니다. Xml parser 라이브러리의 이름은 pugixml 이고요~ 아래 주소에서 다운로드 가능합니다. https://code.google.com/p/pugixml/downloads/list 다음 그림과 같이 편하실데로~ zip 또는 tar.gz 파일을 다운로드 받으면 됩니다. 저는 현재 최신버전인 1.2 버전의 zip 파일 버전인 pugixml-1.2.zip 을 다운로드 받았습니다. 압축을 해제하면 src,scripts,docs,contrib 폴더로 구성되는데요~ 이 중에서 src 폴더가 라이브러리 소스 파일입니다. Xml 을 사용하고자 하는 폴더에 src 폴더의 pugixml.hpp, pugixml.cpp, pugico.. 2014. 2. 9.
C++ sort 인덱스도 정렬하기 프로그래밍을 배우면서 아마도 가장 처음 접하게 되는 알고리즘이 바로 정렬 알고리즘이 아닌가 생각되네요. C++ 에서는 algorithm 헤더에 sort, stable_sort, partial_sort 와 같은 함수들이 정의되어 있습니다. C++ STL 이 참 좋긴 하더군요. ㅋㅋㅋㅋ partial_sort 는 말 그대로 일부를 정렬하겠다는 거로 이해하시면 될 것 같고 저는 처음에 sort 와 stable_sort 가 좀 헷갈리더군요. 무슨 차이일까… 하고요. 차이는 간단한데요. 동일한 값이 있을 경우 stable_sort 의 경우에는 정렬 하기 전의 순서가 정렬후에도 유지된다고 하더군요. 위 함수들의 사용법 등에 대해서는 아래 주소의 예제들을 참조하시면 쉽게 이해하실 겁니다. http://www.cplu.. 2013. 3. 12.
C++11 많이 좋아졌네요. C/C++ 프로그래밍에 대한 기존의 제 선입견은 코드량이 많다 입니다. 실행 속도가 다른 언어들 보다 훨씬 빠르지만~ 하나하나 짜려면 그 라인 수가 너무 많아서 생산성이 그리 좋지 못하다는 선입견이죠. 그런데 요즘 C++ 의 변화를 보고 있으면 그 변화가 눈부시다는 생각이 들더군요. C++ 코딩을 하면서 종종 참조하는 사이트인데~ 들어가면 각종 라이브러리나 함수에 대한 정의 및 예제, C++ Tutorial, C++ 역사 등등 C++ 과 관련한 정말 다양한 정보를 얻을 수 있는 사이트 입니다. http://www.cplusplus.com 그런데 위 사이트에서 돌아다니다 보면 C++11 이라는 것들이 눈에 띄더군요. 뭔가 해서 보니 2011 년 9월에 만들어진 C++ 표준이라서 C++11 이라고 한다네요... 2012. 8. 26.
C/C++ 동적 할당 배열 인덱스 1부터 시작하기 MATLAB 을 사용해본 분들은 아시겠지만, MATLAB 의 배열 인덱스는 1부터 시작 합니다. 그런데 C 나 그 밖의 컴퓨터 언어들의 배열 인덱스는 보통 0에서부터 시작을 하죠. 모듈로 같은 연산을 할 때는 0 부터 시작하는게 편하지만 그 밖의 몇가지 수학적인 연산에 이용되는 배열의 경우 1 에서부터 시작하는 게 편리 할 때도 있는데요. 이런 경우에 C/C++ 에서 동적 할당을 이용하여 배열을 만드는 방법에 대해 설명 드리려 합니다. 지난 포스팅에서 다차원 배열을 할당 할 때 calloc() 을 사용하여 배열을 할당했는데요. 2011/10/05 - [컴퓨터일반] - C 언어 이차원 동적 배열 다음과 같이 할당한 포인터에 -1 만큼 옵셋을 주면 배열의 인덱스를 1부터 n 까지로 이용 할 수 있습니다. i.. 2012. 6. 21.
C/C++ argc, argv 의 사용법 C / C++ 의 함수 사용시 Argument 를 적절히 사용하는 것은 너무나 당연합니다. 그런데 저는 C/C++ 코딩을 한지는 한 5년이 넘은 것 같은데 main 함수의 Argument는 제대로 사용을 하지 않았다는 것을 최근에 책을 보다 알았습니다. 어떻게 보면 너무 기본적인 부분이라 그냥 아무 생각 없이 넘어 가곤 했던 것 같습니다. main 함수의 정의는 보통 다음과 같이 합니다. int main(int argc, char **argv) { return 0; } 위 코드에서 argc 는 argument의 수를 의미 합니다. argv 는 argument 가 char 형으로 저장이 되는 변수 입니다. argv[0] 은 실행 파일명이 저장 됩니다. argv[1], argv[2] … 에는 순서대로 사용자.. 2012. 2. 16.
C, C++ printf(), scanf() 특수 문자 C, C++ 코딩시 printf(), scanf() 함수는 숫자 또는 문자를 표현하기 위하여 몇 가지 특수 문자를 제공한다. 매번 쓰는 것들이라 그냥 넘어가기 쉽지만, 가끔은 완전 잊어 버리게 되는 경우도 있어서 여기 정리한다. 특수 문자 내용 c 문자 출력 d 10진수 정수 출력 o 8 진수 출력 u unsigned 출력 x 16진수 소문자 출력 X 16진수 대문자 출력 e exponential 숫자 출력, e 를 소문자로 E exponential 숫자 출력, E를 대문자로 f floating number 출력 s 문자열 출력 위에서 몇 가지 문자들을 이용하여 -10 을 표현해 보자. 위 코드의 실행 결과는 다음과 같다. -10을 %d 로 표현한 경우는 정상적으로 -10 이 표현되는 것을 확인 할 수 .. 2011. 9. 24.
[C++] template C++ 프로그래밍을 하다 보면 변수의 type 에 따라 함수를 여러 개 작성해야 되는 경우가 많이 있다. 다음과 같이 x3 을 계산을 하는 myfunc() 함수를 가정 해 보자. 위 식에서 x 라는 변수가 int, double 인 경우에 대해 함수를 작성 하면 아래와 같이 될 것이다. x 가 integer 인 경우 int myfunc(int x) { int t0; t0 = x*x*x; return t0; } x 가 double 인 경우 double myfunc(double x) { double t0; t0 = x*x*x; return t0; } 함수는 오버로딩이 되므로 위와 같이 두 개의 함수를 지정해 놓으면 x 가 int 인 경우나 double 인 경우는 함수가 정상적으로 call 이 되고 동작을 하게.. 2011. 3. 6.