본문 바로가기
반응형

기술자료/C C++30

[賢斌] vector<벡터> - 2 40-1-나.삽입과 삭제 요소의 집합을 관리하는 컨테이너에서 삽입과 삭제는 가장 기본적인 동작이다. 각 컨테이너별로 내부적인 구조가 다르기 때문에 삽입, 삭제 방식도 컨테이너별로 다를 수밖에 없다. 그래서 삽입, 삭제 함수는 일반 알고리즘으로 제공되기보다는 컨테이너의 멤버 함수로 제공된다. 다음 두 함수는 벡터의 제일 끝 부분에서 삽입, 삭제를 수행한다. void push_back(const T& x); void pop_back(); push_back은 벡터 끝에 새 요소 x를 추가하고 필요할 경우 메모리 관리까지 한다. 용량이 부족할 경우 재할당을 해서라도 x를 추가하므로 마음놓고 호출할 수 있다. pop_back은 반대로 벡터의 끝 요소를 삭제한다. 앞뒤의 요소를 읽을 때는 front, back 멤버.. 2009. 8. 13.
[오락실]선택정렬 1. 선택정렬(Selection Sort)이란? -. 실제 프로그래밍에서 많이 사용되는 간단한 정렬방법으로 오름차순을 기준으로 한다면, 최소값을 찾아 왼쪽으로 이동시키는데 배열크기만큼 반복하여 정렬하는 방법이다. -. 가장 작은 값을 찾아서 첫번째 위치에 있는 값과 교환하고, 두번째로 작은 값을 찾아 두번째 위치에 있는 값과 교환하는 방법으로 이러한 방법을 반복한다. 2. 버블정렬을 이용하여 오름차순으로 정렬하는 그림 3. 선택정렬의 비교회수 -. 최선일 경우의 비교회수 공식 : N - 1 -. 최악일 경우의 비교회수 공식 : N(N – 1)/2 -. 위의 그림을 보시면 아시겠지만 제일 처음에는 (N – 1)번을 비교하고, 그 다음에는 (N – 2)번 만큼 비교하고, 그 다음은 (N – 3)번을 비교하면.. 2009. 8. 13.
[賢斌] vector<벡터> 40-1.벡터 40-1-가.벡터 벡터는 동일 타입의 자료 집합인 시퀀스 컨테이너의 대표이다. 템플릿 기반이므로 임의 타입을 요소로 가질 수 있으며 요소의 개수에 따라 자동으로 메모리를 관리한다. 즉 벡터는 임의 타입의 동적 배열로 정의할 수 있다. 구조가 단순하고 사용법이 쉬우며 몇 가지 경우를 제외하고 대부분의 경우 자료 관리에 탁월한 성능을 보이므로 STL 컨테이너 중 활용 빈도가 가장 높고 실용적이다. STL의 컨테이너들은 대부분 비슷한 방식으로 추상화되어 있어 하나만 정성들여 공부해 놓으면 나머지는 차이점을 확인하는 정도만으로 쉽게 이해할 수 있다. 생성자도 거의 유사하며 멤버 함수의 이름은 물론이고 어떤 경우는 원형까지도 완전히 똑같다. 컨테이너라는 추상적인 실체가 유사하기 때문에 인터페이스도 .. 2009. 8. 13.
[오락실]기본 정렬 알고리즘 1. 버블정렬 정렬알고리즘이 하나도 기억이 안나서 ㅡㅠ 새로 공부하는김에 겸사겸사 올려염 ㅠ 1. 버블정렬이란? - 인접해 있는 두 개의 값을 비교해서 자료 교환을 한다. - 오름차순 정렬은 두 개의 값을 비교해서 큰 값을 오른쪽으로 보내는 방식이다, 내림차순 정렬은 두 개의 값을 비교해서 작은 값을 오른쪽으로 보내는 방식이다. 2. 버블정렬을 이용하여 오름차순으로 정렬하는 그림 4. 버블정렬의 비교회수 -. 비교 회수 공식 : N(N – 1)/2 -. 위의 그림을 보시면 아시겠지만 제일 처음에는 (N – 1)번을 비교하고, 그 다음에는 (N – 2)번 만큼 비교하고, 그 다음은 (N – 3)번을 비교하면서 비교회수가 1이 될 때까지 이 작업을 반복할 것이다. -. 비교회수는 (N – 1) + (N – 2) + (N .. 2009. 8. 12.
[賢彬] 변환 연산자들(Conversion Operators) 1.4 변환 연산자들(Conversion Operators) C++ 및 C 코드가 함께 사용되는 것을 보는 것은 흔한 일이다. 예를 들면, 원래 C로 쓰여졌던 legacy 시스템들은 객체 지향 인터페이스에 의해 싸여질(wrap) 수 있다. 그러한 이중언어(dual language)를 사용하는 시스템들은 종종 동시에 이중적인 인터페이스를 지원할 필요가 있다 - 하나는 객체 지향환경을 제공하는 것이고 또 다른 것은 C 환경을 제공하는 것이다. 특정한 수치적 실재들(numeric entities) - 복소수 및 이진수와 같은 -과 nibbles을 구현하는 클래스들 또한 기본 타입들과의 더 부드러운 상호작용이 가능하도록 변환 연산자들(conversion operators)을 사용하는 경향이 있다. 문자열은 이중.. 2009. 8. 12.
[賢彬] [무료제공 기술서적] Inside C#pdf 와 Source File (마이크로소프트 무료 배포판) 출처 : 한국 마이크로 소프트 Inside C#이라는 책을 마이크로 소프트에서 무료 배포하고 있더군요 우연한 기회에 받게 되었는데 C#을 혹시 따로 공부하시는 분이 있으면 도움이 될 것 같습니다. '공짜' 라는 점이 중요한 것입니다. 분할 압축 받기 싫으신 분은 위에 링크 타고 받으러 가시면 됩니다. (티스토리는 10메가 씩 올려야 하는군.. -_-;;) 2009. 8. 12.
[賢彬] C Pointer and Arrays [다시한번 기초를 보자는 의미에서 올려봄] 포인터와 배열(Pointer and Arrays)에 대해서 알아봅시다. 1. 포인터의 기초 ▣ 포인터와 번지 일반적으로 변수에 대입되는 자료는 메모리(주기억장치)에 저장된다. 컴퓨터 에서 메모리에 저장된 자료를 참조하기 위해서는 반드시 자로가 저장된 위치 를 표시하는 번지(또는 주소, address)를 지정하여 참조한다. 즉, 컴퓨터 내 부에서는 메모리에 저장된 자료를 참조하기 전에 자료가 저장된 번지를 먼저 지정해야 한다. 메모리 │ : │ ├──────┤ 1000번지│ 97 │ ├──────┤ 1001번지│ 127 │ ├──────┤ 1002번지│ 82 │ ├──────┤ │ : │ 위 그림의 메모리에서 자료 97값을 참조하기 위해서는 메모리의 번지 1000.. 2009. 8. 12.
[오락실]cout 으로 양식화된 출력 사용하기 cout 2009. 8. 12.
C/C++Pre-processor(전처리기)이 대해 ... 컴파일을 시도할 경우 컴파일이 실행되기 전에 전처리기 명령부터 처리된다. 전처리기는 # 로 시작하고 ; 를 붙이지 않으며 보이지 않게 소스 코드를 변경하며 컴파일러에게 지시를 내릴 수도 있다. 각각은 여기서는 명령어라는 용어를 사용했지만 정확하게는 directive(지시자) 라고 하는 것이 나을 지 모르겠다. #include 가장 흔히 볼 수 있는 전처리기이다. 해당 파일을 찾아서 컴파일러가 그 파일이 마치 현재 컴파일하는 소스 코드에 포함되어 있는 것같이 해준다. 는 표준 헤더 파일일 경우에 설정되어 있는 폴더에서 헤더 파일을 찾으며 “ ” 는 그 외 폴더에서 찾을 수 있는데 최우선으로 현재 프로젝트 폴더에서 찾게 된다. #define define 문은 여러 경우에 사용될 수 있는데 일반적으로 문자열 .. 2009. 8. 11.
728x90
반응형