전체보기(303)
-
STL - Deque
장점 1. 크기가 가변적이다. 리스트와 같이 데이터를 담을 수 있는 크기가 가변적이다.2. 앞과 뒤에서 삽입과 삭제가 좋다. Deque이 다른 자료구조와 가장 다른 점으로 앞과 뒤에서 삽입, 삭제가 좋다.3. 중간에 데이터 삽입, 삭제가 용이하지 않다. 데이터를 중간에 삽입하거나 삭제하는 것은 피해야 한다. 삽입과 삭제를 중간 에 한다면 삽입하거나 삭제한 위치 앞뒤 데이터를 모두 이동해야 한다.4. 구현이 쉽지 않다.Deque은 Stack과 Queue가 결합된 자료구조로 연결 리스트보다 구현하기가더 어렵다.5. 랜덤 접근이 가능하다. 연결 리스트처럼 리스트를 탐색하지 않고 원하는 요소에 바로 접근할 수 있다. • deque은 앞과 뒤에서 삽입과 삭제 성능이 vector보다 더 좋다.• deque은 앞과 ..
2017.01.04 -
new 메모리할 당 실패 - (펌)
(펌) http://m.blog.naver.com/teiry20/10180656172 new는 C++에서 객체의 메모리 할당과 생성자 호출을 통한 초기화를 담당합니다.C의 malloc, calloc은 메모리 할당에 실패하게 되면 NULL을 리턴해줍니다.하지만 new는 메모리 할당에 실패했을 때 NULL을 리턴하지 않습니다.따라서 다음과 같이 예외 처리를 할 경우에는 정상적으로 동작하지 않습니다.잘못된 코드 ?1234567891011121314#include using namespace std; void main(){ char* pData = new char[0x7FFFFFFF]; if (nullptr == pData) { cout
2017.01.02 -
문법 - C++ - static_cast, dynamic_cast, const_cast, reinterpret_cast
http://sweeper.egloos.com/m/1907485 (펌) 아래 내용은 MEC++ 2장을 토대로 개인 견해와 예제 코드를 곁들여 작성되었다. -------------------------------------------------------------------------------- 1. C 스타일 캐스트와 C++ 캐스트 간략 소개 캐스트(cast, 형변환)은 A 타입에서 B 타입으로 명시적으로 타입 변환을 하기 위해 사용된다. 우선, 전통적인 C 스타일 캐스팅은 가급적 지양하는 것이 좋다.이것의 첫째 문제는 C 스타일의 캐스트는 어떤 타입을 다른 타입으로 아무 생각없이 바꾸어주는 괴물이나 마찬가지라는 것이다. 이런 방식의 캐스팅을 조금이라도 세심하게 상황에 맞게 조정해 주는 것이 필요하다..
2016.12.02 -
STL - list - Sample (3)
// remove_if 사용 예 #include #include using namespace std; // 20 이상 30 미맊이면 truetemplate class Is_Over20_Under30: public std::unary_function {public:bool operator( ) ( T& val ){return ( val >= 20 && val list1;list1.push_back(10);list1.push_back(20);list1.push_back(25);list1.push_back(30);list1.push_back(34);// 20 이상 30 미만은 삭제한다.list1.remove_if( Is_Over20_Under30<..
2016.12.02 -
STL - list - Sample (2)
// insert의 세 가지 방법 #include #include using namespace std; void main(){list list1;list1.push_back(20);list1.push_back(30);cout ::iterator iterEnd = list1.end();for(list::iterator iterPos = list1.begin();iterPos != iterEnd;++iterPos ){cout
2016.12.02 -
STL - list - Sample (1)
// STL List 사용에 대한 좋은 예제 #include #include using namespace std; // 아이템 구조체struct Item{Item( int itemCd, int buyMoney ){ItemCd = itemCd;BuyMoney = buyMoney;}int ItemCd; // 아이템코드int BuyMoney; // 판매금액}; void main(){ list Itemlist; // 앞에 데이터 추가Item item1( 1, 2000 );Itemlist.push_front( item1 ); Item item2( 2, 1000 );Itemlist.push_front( item2 ); // 뒤에 데이터 추가Item item3( 3, 3000 );Itemlist.pus..
2016.12.02