프로그래밍/STL 스피비 2011. 4. 26. 12:29
앞의 두 게시판을 참고하고 보면 도움이 됩니다^^. [프로그래밍/STL] - 일반화 프로그래밍, STL기초 [프로그래밍/STL] - 컨테이너 (시퀀스,연관,어댑터) 벡터 0. #include 를 추가해야함. 1. std 네임스페이스 안에 있음 2. 동적배열이다. ( 연속된 메모리 공간 ) 3. 시퀀스 컨테이너. 4. 삽입삭제가 느림. 5. 임의접근 반복자(랜덤엑세스 반복자)를 사용. 6. 임의요소 참조 빠름. 7. 중간요소 삽입삭제가 느림. 8. 삽입, 삭제시 반복자 무효화 현상이 일어날 수 있다!! 9. 이론적으로 벡터에 포인터를 저장하는 것이 가능하기는 하지만 여러 가지로 신경써야 할 것들이 많고 불편하기 때문에 벡터에는 통상 값을 저장하는 것이 권장된다. 10. bool 타입의 벡터는 여러 활용이 ..
프로그래밍/STL 스피비 2011. 4. 22. 13:42
현재 STL에서는 STL의 조건을 위한할 경우의 결과가 정의되어 있지 않다. STL사용시 주의사항 1. 반복자는 반드시 유효해야만 한다. 2. 종료 위치 다음을 가리키는 반복자는 참조하는 원소가 없다. 3. 범위는 반드시 유효해야한다. ( 범위를 나타내는 두개의 반복자는 반드시 같은 컨테이너를 참조해야 한다. ) ( 두 번째 반복자는 첫 번째 반복자로부터 도달할수 있어야한다. ) ( 만약 하나 이상의 소스 범위가 사용된다면, 두 번째 또는 그 이후의 범위는 첫 번째 범위보다 더 많은 원소를 가질 수 있어야한다. ) ( 못적지 범위는 덮어쓸 수 있도록 충분한 원소를 가지고 있어야 한다. 그렇지 않다면 반복자를 사용해야만 한다 ) C++ standard Library 책 P177 참조했음
프로그래밍/STL 스피비 2011. 4. 22. 12:44
모든 컨테이너는 원소의 내부적인 복사본을 생성하며 이 복사본을 반환한다. 이렇게 값을 복사한다는 의미로 봤을때 STL의 장단점은 이러하다. 장점 1. 원소를 복사하는 것은 간단하다. 2. 레퍼런스는 에러를 발생하기 쉽다. (즉. 사용자는 더 이상 존재하지 않는 객체에 대해 참조하지 않는다는 사실을 보장해 주어야만 한다.) 단점 1. 원소를 복사하는 것은 나쁜 성능을 가져올 수도 있다. 또한 복사가 불가능할 수도 있다. 2. 같은 객체를 여러 컨테이너에 동시에 관리하는 것이 불가능하다. C++ standard library 튜토리얼 레퍼런스 저자- 니콜라이 책 p 175에서 퍼옴 ㅎㅎ
프로그래밍/STL 스피비 2011. 4. 22. 11:03
컨테이너의 종류에는 시퀀스, 연관, 어댑터가 존재한다. 이렇게 컨테이너가 종류별로 나뉜 이유는 삽입,삭제에 있어서 차이가 있기 때문이다. 시퀀스 컨테이너 => 특별히 삽입과 삭제의 규칙이 존재하지 않는 컨테이너이다. push_back() pop_back() front_ insert() erase() *벡터* 1. #include 를 추가해야함. 2. 동적배열이다. ( 즉 연속된 메모리 공간 ) 3. 시퀀스 컨테이너. 4. 삽입삭제가 느림. 5. 임의접근 반복자를 사용. 6. 임의요소 참조 빠름. 7. 삽입삭제가 느림. 8. 삽입, 삭제시 반복자 무효화 현상이 일어날 수 있으므로 각별히 주의! 9. 이론적으로 벡터에 포인터를 저장하는 것이 가능하기는 하지만 여러 가지로 신경써야 할 것들이 많고 불편하기 때..
프로그래밍/STL 스피비 2011. 4. 4. 16:09
문제 1) [ 배열템플릿 ] 아래의 코드를 보고 배열 템플릿을 구현하세요. void main() { CTemplate Ctemp(0); Ctemp[0] = 100; Ctemp[1] = 101; Ctemp[2] = 102; // Ctemp[-1] = 100; // 배열의범위가맞지않으면종료시킨다. // Ctemp[3] = 100; // 배열의범위가맞지않으면종료시킨다. } 문제 2) [ 2차원배열 처럼사용 ] 위 소스를 아래 처럼 사용할수 있도록 구현하세요. Ctemp[0][0] = 100; Ctemp[0][1] = 101; Ctemp[0][2] = 102; 문제 3) [ 배열 템플릿 출력 ] 아래 보이는 굵은 표시를 추가하여 아래와 같이 출력화면이 나오도록 구현하세요 void main()..
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.