IT-개발/C및C++(33)
-
STL - hash_map - sample(1)
hash_map을 사용하는 경우1. 많은 자료를 저장하고, 검색 속도가 빨라야 한다.2. 너무 빈번하게 자료를 삽입, 삭제 하지 않는다. #include #include using namespace std;using namespace stdext; // 게임 캐릭터struct GameCharacter{// 아래의 인자를 가지는 생성자를 정의한 경우는// 꼭 기본 생성자를 정의해야 컨테이너에서 사용할 수 있다.GameCharacter() { }GameCharacter( int CharCd, int Level, int Money ){_CharCd = CharCd;_Level = Level;_Money = Money;}int _CharCd; // 캐릭터 코드int _Level; // 레벨int _Money; ..
2017.01.04 -
STL - Deque - sample(1)
// Insert와 erase #include #include using namespace std;int main(){Packet Pkt1;Pkt1.Index = 1; Pkt1.BodySize = 10;Packet Pkt2;Pkt2.Index = 2; Pkt2.BodySize = 12;Packet Pkt3;Pkt3.Index = 3; Pkt3.BodySize = 14;Packet Pkt4;Pkt4.Index = 4; Pkt4.BodySize = 16;deque ReceivePackets;ReceivePackets.push_back( Pkt1 );ReceivePackets.push_back( Pkt2 );ReceivePackets.push_back( Pkt3 );cout
2017.01.04 -
STL - Deque
장점 1. 크기가 가변적이다. 리스트와 같이 데이터를 담을 수 있는 크기가 가변적이다.2. 앞과 뒤에서 삽입과 삭제가 좋다. Deque이 다른 자료구조와 가장 다른 점으로 앞과 뒤에서 삽입, 삭제가 좋다.3. 중간에 데이터 삽입, 삭제가 용이하지 않다. 데이터를 중간에 삽입하거나 삭제하는 것은 피해야 한다. 삽입과 삭제를 중간 에 한다면 삽입하거나 삭제한 위치 앞뒤 데이터를 모두 이동해야 한다.4. 구현이 쉽지 않다.Deque은 Stack과 Queue가 결합된 자료구조로 연결 리스트보다 구현하기가더 어렵다.5. 랜덤 접근이 가능하다. 연결 리스트처럼 리스트를 탐색하지 않고 원하는 요소에 바로 접근할 수 있다. • deque은 앞과 뒤에서 삽입과 삭제 성능이 vector보다 더 좋다.• deque은 앞과 ..
2017.01.04 -
문법 - 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