Inventory
-
369숫자를 찾아 *로 표시하기@ 16. 1 ~ 17. 1/C++ 2013. 2. 18. 23:23
숫자를 입력하고..369의 숫자만큼 *로 표시하는것..클래스로 구현... 200제 풀다가 ..생각나는것들은 올리는 중..그냥 뭐 그렇다고..ㅜㅜ #include #include #include #include #include using namespace std; class ThreeSixNine { private: int num; public: ThreeSixNine(int num); int GetSize(int num); bool Search(int num); int Test369(int num); void ShowData(); }; int main() { ThreeSixNine t(100); t.ShowData(); getch(); return 0; } ThreeSixNine::ThreeSixNine..
-
참조와 포인터(2)@ 16. 1 ~ 17. 1/C++ 2013. 2. 13. 22:47
클래스를 그대로 함수에 전달하면 복사본이 만들어진다는 것은 기본 중에 기본 포인터나 참조를 이용하면 훨씬 좋다. 하지만 그냥 전달시 복사본이 생성되어 값이 변경되지 않지만.. 포인터나 참조를 이용하면 값이 변경된다. 그래서 int sum(const T *t){ ... } 이런식으로 const를 선언한다. 그런데 위험물인 포인터말고..참조로 바꿔보자.. int sum(const T &t) { .... } 호출시에는 int r=sum(t); int와 float이외 클래스를 함수에 전달할 때는 대개 참조를 사용한다고 한다? 우와..편하다..!! !! 근데 문제점이있단다..? 참조 문제점 int r=sum(t); 를 보자.. 이게 과연..그냥 객체를 넣은것인지..참조형태로 넣은것인지...이것만 보고 누가 알 수..
-
참조와 포인터(1)@ 16. 1 ~ 17. 1/C++ 2013. 2. 13. 22:09
참조와 포인터 포인터는 &를 붙여서 주소로 만들어야하지만 참조는 그럴 필요가 없다. int a = 5; int &ref=a; int *ref=&a; 사용시 포인터는 *를 붙이지만 참조는 없어도된다. ref=10; *ref=10; 참조만의 특징 1. 초기화가 필요하다 포인터의 경우 무엇을 가리키는지 알 수 없는 것도 만들수 있다. int *ptr; 하지만 참조의 경우 int &ref; 는 안된다. 2. 가리키는 대상을 변경할 수 없다. 포인터는 도중에 가리키는 대상을 변경할 수 있다. int a; int *ptr=&a; int b; ptr=&b; 이런식으로 변경이 가능하지만 참조는.. int &ref=a; ref=b; 이러면 에러다.. 3. 첨자를 붙일 수 없으며 숫자도 더할 수 없다. 포인터의 경우 in..
-
분할컴파일시..extern, static@ 16. 1 ~ 17. 1/C++ 2013. 2. 12. 21:08
전역변수 선언시.. 헤더파일에 선언을 할경우..(가급적 하지말란다..아니 좋은 습관이 아니란다..) 여러개의 소스파일에서 include시 충돌이 난다.. 그럴경우..헤더파일에는 선어만 실시하고..extern int a; 이런식으로.. 실제 소스파일에서 그것을 정의하면 된다는..물론 헤더파일을 include하고.. extern 은 외부변수를 사용할때 사용한다. 만약 앞에 static을 붙이게 되면 extern을 붙여 사용해도 다른곳에서 사용못한다. 헤더가 아닌 소스파일에서 static으로 선언하고 그값에 접근할 수 있는 함수를 만든다는데...외부소스에서도 접근이 가능한.. 뭐 아무튼 ..헤매서 정리해둠..
-
STL List(1)@ 16. 1 ~ 17. 1/STL 2013. 2. 11. 02:10
STL list를 사용하면 좋은점 * 연결리스트를 따로 만들어야 하는 시간을 절약할 수 있다. 사용해야 하는 이유 1. 저장할 데이터 개수가 가변적이다. - 저장 공간의 크기가 자동으로 변하므로 유연하게 사용할 수 있다. 2. 중간에 데이터 삽입이나 삭제가 자주 일어나는 경우 3. 데이터를 랜덤하게 접근하는 경우가 많지 않다. - list의 경우 순차접근만 가능하므로 랜덤접근의 경우 비효율적 사용법 #include를 포함하고 list형식은 list 변수 이름 list list1; 동적할당도 가능하다. list* 변수이름 = new list; list* list1=new list; 리스트에 접근을 하려면 반복자를 사용해야한다. Iterator 포인터의 일반화된 개념이라고 봐도 된단다. 무슨이야기냐하면.. ..
-
아....링크드 리스트(단일)@ 16. 1 ~ 17. 1/자료구조 2013. 2. 5. 23:39
링크드 리스트(단일) 삽입, 삭제, 출력.. ..미친듯이 집중이 안되는 오늘...이거 이해하는데 도대체 몇일이 걸린건데..? 한심하게 짝이 없음.. 일단 자세한 내용은 더보기로.. #include #include using namespace std; struct Node //노드 즉 데이터 및 link자기참조 구조체 { int data; Node *link; }; class List //노드를 구현할 list클래스 { private: Node *head; public: List() //생성자 노드를 동적할당하고 data값을 초기화한다. 그리고 link의 주소값을 NULL로 초기화 { head = new Node; head->link = NULL; head->data = 0; } ~List() //소멸자 ..