Successfully reported this slideshow.
자료구조 세미나 C++
C++ ? <ul><li>처음 이름은  C with Classes </li></ul><ul><li>C 언어  ++  연산자를 사용하여 한단계 진보했다는 의미로  C++  이라는 이름을 사용 </li></ul><ul><l...
특징 <ul><li>객체지향적 ( object-oriented ) </li></ul><ul><ul><li>클래스 사용 </li></ul></ul><ul><ul><li>구조체도 클래스와 다를게 없음 </li></ul></...
C++ 과  Java <ul><li>public class  라는 개념이 없다 . </li></ul><ul><li>package  와 비슷한  namespace  가 있다 . </li></ul><ul><ul><li>ST...
C++ 과  Java <ul><li>클래스 선언문 밖에 코드를 작성할 수 있다 . </li></ul><ul><ul><li>이 때는 클래스 내부의 코드라는 것을 명시하기 위해 return-type classname::fu...
C++ 과  Java <ul><li>이하 미세한 차이 </li></ul><ul><ul><li>상속받을 시  extends  가 아닌 class Myclass : public YourClass { }; 와 같이 사용한다 ...
자료구조 세미나 Template
무엇 ? <ul><li>C++ 의  Generic  한 성격을 부여하는 가장 큰 부분이다 . </li></ul><ul><li>사용할 자료형을 미리 정해주지 않고 ,  객체가 사용될 때 정의하는 것 </li></ul><u...
사용 <ul><li>class  선언부 위에 template < typename T >  와 같이 쓴다 . </li></ul><ul><li>template < typename T, typename L>  과 같이 여러 ...
자세한 내용 <ul><li>다음 프로그램을 참고 . </li></ul>
자료구조 세미나 Stack  구현
 
자료구조 세미나 STL  맛보기
STL <ul><li>Standard Template Library </li></ul><ul><li>미리 생성된 라이브러리를 자료형에 상관없이 사용할 수 있다 . </li></ul><ul><li>using namespa...
종류 <ul><li>list, stack, queue, priority_queue(heap), map, set, string, vector  등등 </li></ul><ul><li>STL  에 대해 자세히 설명하려면 책 ...
iterator <ul><li>반복자 </li></ul><ul><li>원소에 접근하는데 통일된 방식을 사용하기 위하여  iterator  를 사용 </li></ul><ul><ul><li>각각의 객체는 서로 다른  ite...
iterator <ul><li>사용 예 </li></ul><ul><ul><li>list< int > a; </li></ul></ul><ul><ul><li>list< int >::iterator i; </li></ul><...
Upcoming SlideShare
Loading in …5
×

Data Structure 4

1,263 views

Published on

Published in: Technology, Education
  • Be the first to comment

  • Be the first to like this

Data Structure 4

  1. 1. 자료구조 세미나 C++
  2. 2. C++ ? <ul><li>처음 이름은 C with Classes </li></ul><ul><li>C 언어 ++ 연산자를 사용하여 한단계 진보했다는 의미로 C++ 이라는 이름을 사용 </li></ul><ul><li>Java 같은 C 언어 라고 생각하면 된다 . </li></ul>
  3. 3. 특징 <ul><li>객체지향적 ( object-oriented ) </li></ul><ul><ul><li>클래스 사용 </li></ul></ul><ul><ul><li>구조체도 클래스와 다를게 없음 </li></ul></ul><ul><li>포괄적 ( generic ) </li></ul><ul><ul><li>구현된 하나의 코드를 type 에 상관없이 사용할 수 있음 </li></ul></ul><ul><ul><li>Template, overloading, overriding </li></ul></ul>
  4. 4. C++ 과 Java <ul><li>public class 라는 개념이 없다 . </li></ul><ul><li>package 와 비슷한 namespace 가 있다 . </li></ul><ul><ul><li>STL 을 사용하기 위해서는 다음 구문을 써주면 편리하다 . </li></ul></ul><ul><ul><li>using namespace std; </li></ul></ul><ul><li>abstract 와 비슷한 virtual 이 있다 . </li></ul><ul><li>interface 개념이 없다 . </li></ul><ul><li>template 을 사용 가능하다 . </li></ul>
  5. 5. C++ 과 Java <ul><li>클래스 선언문 밖에 코드를 작성할 수 있다 . </li></ul><ul><ul><li>이 때는 클래스 내부의 코드라는 것을 명시하기 위해 return-type classname::function-name() 와 같이 쓴다 . </li></ul></ul><ul><li>new 로 생성했을 때 delete 를 해줘야 한다 . </li></ul><ul><ul><li>C++ 은 gc( garbage collector 가 없다 . ) </li></ul></ul>
  6. 6. C++ 과 Java <ul><li>이하 미세한 차이 </li></ul><ul><ul><li>상속받을 시 extends 가 아닌 class Myclass : public YourClass { }; 와 같이 사용한다 . </li></ul></ul><ul><ul><li>클래스 끝에 ; 를 붙여줘야 한다 . ( 중괄호 뒤에 , 자주하는 실수 ) </li></ul></ul>
  7. 7. 자료구조 세미나 Template
  8. 8. 무엇 ? <ul><li>C++ 의 Generic 한 성격을 부여하는 가장 큰 부분이다 . </li></ul><ul><li>사용할 자료형을 미리 정해주지 않고 , 객체가 사용될 때 정의하는 것 </li></ul><ul><li>각 객체별로 다른 코드를 생성하여 컴파일 </li></ul><ul><li>STL 의 모든 코드가 이 template 을 사용 </li></ul>
  9. 9. 사용 <ul><li>class 선언부 위에 template < typename T > 와 같이 쓴다 . </li></ul><ul><li>template < typename T, typename L> 과 같이 여러 개를 사용할 수도 있다 . </li></ul><ul><li>각각의 typename 은 클래스 안에서 자료형으로 사용된다 . </li></ul><ul><li>이와 같이 만들어진 class 는 class-name< typename > object-name; 과 같이 선언한다 . </li></ul>
  10. 10. 자세한 내용 <ul><li>다음 프로그램을 참고 . </li></ul>
  11. 11. 자료구조 세미나 Stack 구현
  12. 13. 자료구조 세미나 STL 맛보기
  13. 14. STL <ul><li>Standard Template Library </li></ul><ul><li>미리 생성된 라이브러리를 자료형에 상관없이 사용할 수 있다 . </li></ul><ul><li>using namespace std; 를 쓰면 라이브러리를 사용할 때 일일이 std:: 를 붙여주지 않아도 된다 . </li></ul>
  14. 15. 종류 <ul><li>list, stack, queue, priority_queue(heap), map, set, string, vector 등등 </li></ul><ul><li>STL 에 대해 자세히 설명하려면 책 한권을 써도 부족하다 . </li></ul><ul><li>가장 좋은 방법은 실제로 쓰면서 익히는 것 </li></ul>
  15. 16. iterator <ul><li>반복자 </li></ul><ul><li>원소에 접근하는데 통일된 방식을 사용하기 위하여 iterator 를 사용 </li></ul><ul><ul><li>각각의 객체는 서로 다른 iterator 를 사용한다 . </li></ul></ul><ul><ul><li>객체 마다 자료형도 다르고 다음 원소에 접근하는 방법도 다르기 때문이다 . </li></ul></ul><ul><li>begin() 함수로 첫번째 원소의 iterator 를 얻어오고 end() 함수로 마지막 원소 다음의 iterator 를 얻어온다 . </li></ul><ul><ul><li>마지막 원소가 아니라는 점에 주의 </li></ul></ul>
  16. 17. iterator <ul><li>사용 예 </li></ul><ul><ul><li>list< int > a; </li></ul></ul><ul><ul><li>list< int >::iterator i; </li></ul></ul><ul><ul><li>a.push_back( 1 ); </li></ul></ul><ul><ul><li>a.push_back( 2 ); </li></ul></ul><ul><ul><li>for( i=a.begin() ; i!=a.end() ; i++ ) </li></ul></ul><ul><ul><li>{ </li></ul></ul><ul><ul><li>printf( “%d ”, *i ); </li></ul></ul><ul><ul><li>} </li></ul></ul>

×