레필리아
'컴퓨터공학 기초' 카테고리의 글 목록 (4 Page)

컴퓨터공학 기초

컴퓨터공학 기초/C.C++

STL - 이터레이터(iterator)

★ 일반화 프로그래밍 → STL은 일반화 프로그래밍의 한가지 예이다. → 객체지향 프로그래밍이 프로그램의 데이터적인 측면을 중시하는 데에 비해 일반화 프로그래밍은 데이터 타입에 대해 무관하며 알고리즘을 중시한다. 이것은 즉 일반화 프로그래밍이라는 것이 어떠한 데이터 타입에서도 무난하게 돌아가야 한다는 것을 의미한다. ★ 이터레이터에 대해 → STL을 이해하기 위해서는 이터레이터의 이해가 반드시 필요하다. 배열, 리스트, 큐 등 다양한 종류의 컨테이너에 대해서 같은 연산으로 동일한 동작을 할 수 있도록 하는 것이 이터레이터이다. 예를 들어 ++연산을 예로 들어본다면 둘다 다음 요소를 가리키게 한다는 기능적인 측면에서는 같지만, 배열에서는 다음 주소 공간을 가리키게 하는데에 비해 리스트는 서로의 원소들이 (..

컴퓨터공학 기초/C.C++

STL - vector와 관련 함수

★ STL 종류 1. 컨테이너 → 배열과 같이 여러개의 값을 저장할 수 있는 구성단위. 동질적 같은 종류의 값을 저장할 수 있으며, 컨테이너도 vector, list, deque, map, queue ... 등등으로 종류가 다양하다. 2. 알고리즘 → 배열을 소트하거나 리스트에서 특정 값 검색과 같은 특별한 작업을 수행하기 위한 방법 3. 이터레이터 → 포인터의 일반화 버전. 이것은 포인터 같이 컨테이너 안에서 지시하는 위치를 옮기고 또 다른 원소를 가리키며, 이 것이 가리키는 객체 혹은 변수(이것을 원소라고 한다.)의 값을 갱신 혹은 삭제 등을 할 수 있게 하는 존재다. 4. 함수 객체 → 이것은 클래스 객체일 수도 있고 함수 포인터가 될 수도 있다. ★ STL은 배열, 큐, 리스트 같은 다양한 컨테이..

컴퓨터공학 기초/C.C++

자주 사용하는 C++ STL algorithm 함수 정리

■ 자주사용하는 C++ STL algorithm 함수 정리 • 아래와 같은 배열과 함수가 먼저 선언되어 있다고 가정한다 int arr[10] = { 3, 7, 4, 3, 5, 1, 9, 5, 6, 4 }; void PRINT_ARR( int arr[], int size ) { for( int i = 0; i

컴퓨터공학 기초/C.C++

[DLL] DLL 만드는 방법 2

1. 파일 -> 새로만들기 -> 프로젝트 -> Visual C++ -> Win32 -> Win32 콘솔 프로젝트 선택 - 솔루션 이름과 프로젝트 이름 설정 - 여기서는 솔루션 이름은 DLLEX라 하고, 프로젝트 이름은 DLLEX_Client라 한다. 2. Win32 응용 프로그램 마법삽가 뜨는데, 탭란에 "응용 프로그램 설정" 부분을 누른다. 3. Radio 박스로 된 DLL을 선택하고, 체크박스로 된 내보내기 기호란을 체크한 후 "마침" 버튼을 누른다. 4. 그러면, 소스파일에는 stdafx.cpp, DLLEX_Client파일이 생성이 되고, 헤더 파일에는 stdafx.h, DLLEX_Client.h 파일이 생성이 된다. 5. 아래는 프로젝트 생성 후 구성된 DLLEX_Client.cpp 파일을 나타내..

컴퓨터공학 기초/C.C++

[DLL] DLL 만드는 방법 1

DLL의 간략한 소개를 하겠다. DLL의 장점으로는 아래와 같다. 1. 잘 만들어진 소스를 보관하고자 할 때 2. 컴파일 시간 낭비를 줄일 수 있다. 3. 보안 문제를 해결할 수 있다. 컴파일하면 .lib라는 확장자로 바꾸어 컴파일한다. 이런 라이브러리를 정적 라이브러리라고 한다. DLL들어가기 전에 정적 라이브러리를 할 줄 알아야 한다. 또한 다른 회사에 자기 원본 소스를 보내주지 않고 정적 라이브러리를 만들어서 보내주면 되는것이다. 즉, .dll 파일과 .lib, .h 파일을 보내주면 된다. 헤더파일 만드는 법.. - library자체는 c로 만들어서 컴파일 해둔다. - 헤더는 C/C++모두에서 사용할 수 있게 하는 것이 좋다. - 모든 c++컴파일러는 __cplusplus라는 매트로가 정의 되어 있..

컴퓨터공학 기초/문제 풀이

COINS - Coin Change

MAX_COUNT) System.out.println(ans % MAX_COUNT); else System.out.println(ans); } } long dynamic() { for (int i = 0; i cost) break; dTable[coin]++; for (int j = 1; coin + j