본문 바로가기

분류 전체보기378

벡터 구현 (심플) ///header#pragma once templateclass MyVector{public:int m_numElements;int m_currentSize;T *m_pData; MyVector(int nMaxElements){m_numElements = nMaxElements;m_pData = new T[nMaxElements];m_currentSize = -1;} int GetLength(){return m_currentSize + 1; // Add 1 as it is zero based index} // Adds the element at the endbool AddElement(T data){m_currentSize++;if(m_currentSize - 1 >= m_numElements)retur.. 2013. 3. 10.
벡터_구현 출처: http://stackoverflow.com/questions/5159061/implementation-of-vector-in-c//헤더#pragma oncetemplate class MyVector{public: typedef T * iterator; MyVector();MyVector(unsigned int size);MyVector(unsigned int size, const T & initial);MyVector(const MyVector & v); ~MyVector(); unsigned int capacity() const;unsigned int size() const;bool empty() const;iterator begin();iterator end();T & front();T & .. 2013. 3. 10.
템플릿으로 구현한 스택 //헤더파일#ifndef __STACK_HPP__#define __STACK_HPP__ #include #include #include #include using namespace std; template class Stack{public:Stack() {};void Push(const T&);T Pop() throw(...);const T& Top() const throw(...);int Size() const;bool Empty() const;private:vector stack;}; template void Stack::Push(const T& elem){stack.push_back(elem);} template T Stac.. 2013. 3. 10.
템플릿 실습 // 템플릿 테스트.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.// #include "stdafx.h"#include "cData.h" int _tmain(int argc, _TCHAR* argv[]){cData Ob_cData(10);에 따라서 데이터의 타입이 달라진다. Ob_cData.SetData(10); cout 2013. 3. 9.
템플릿에 대하여... 템플릿 : 컴파일러가 미리 등록된 함수의 형틀을 기억 해두었다가 함수가 호출될때 실제 함수를만드는 장치이다. - 템플릿은 매개변수의 데이터 타입에 기초한 함수와 클래스를 생성하는 메커니즘이다.- 따라서 템플릿을 매개 변수가 있는 데이터 타입이라고 한다.- 템플릿을 사용하면 각 데이터 타입에 대한 별도의 클래스 또는 함수를 생성할 필요없이 단 하나의 클래스를 생성하여 그 클래스를 여러 데이터 타입에 사용할수 있게 된다. 함수 템플릿 : 함수를 찍어 내기 위한 형틀 이다.즉 이 템플릿에 의해 함수가 만들어진다: 이렇게 만들어진 함수들은 기능은 결정되어있지만, 자료형은 결정되어있지않다.- 같은 기능을 하는 함수도 다양한 자료형을 인자로 호출이 가능하다.- 자료형을 명시하지않으면 컴파일러가 인자를 확인하여 호출.. 2013. 3. 7.
함수 포인터 타입 함수 포인터 타입 함수 포인터 타입도 일종의 고유한 타입이다 원형이 다른 함수 포인터끼리는 곧바로 대입 할수없으며, 함수의 인수로도 넘길수 없다. int (*pf1)(char *); void (*pf2)(double); pf1 = pf2; --> 서로 타입이 다르므로 에러임 두변수가 가리킬수 있는 함수의 원형이 다르기때문에 pf2 가 가리키는 번지를 pf1 에 곧바로 대입 할수 없다. 함수 포인터가 가리킬수 있는 원형과 같지 않은 함수의 번지를 대입 하는것도 똑같은 이유로 에러로 처리된다. 2013. 3. 6.