"항목 2를 보면 독립적인 코드는 환상일 뿐이다" 라고 말하고 있듯이, 컨테이너 마다 원소 삭제 방법이 다르다. Sequence Containers 와 Associative Containers 의 차이점이 있으니, Effective 하게 사용 하라는 이야기이다. 정리하자면 총 3가지의 지우는 방법이 있다. 첫째, Container 속의 특정값을 가진 원소를 지우고자 할 때 Sequence Containers 의 경우, erase-remove 합성문이 제일 효율적 이다. // 코드 1-1 #include #include #include int main(void) { typedef std::vector ccc; ccc vecHaha; vecHaha.push_back(1963); vecHaha.push_bac..
책 정리/Effective STL 검색 결과
이런 경우는 같은 타입의 벡터 두개 중 특정 범위의 데이터를 서로 옮기려 할때 많이 발생 한다. 이 때문에데이터를 컨테이너안에 적재하려고 할때 선택의 기로에 우리는 빠지게 된다. 1. 루프를 돌릴까? 2..알고리즘에 위임할까? ... 당연하겠지만 루프보다야 알고리즘에 위임하는게 더 좋다. 말부터가 일단 ... 무엇인가 더 좋다고 느껴진다. 책의 모든 내용을 다 적어 정리 하는것 보다 "그렇구나~ 그래서 이렇게 사용 해야 돼" 라고 정리하고, 나중에 궁금할때 vector 를 분석하면 더 도움이 되기 때문에, 3가지로 요약한다,. 첫째, 아트 코딩을 할 수 있게 해준다. - 가독성, 보수성이 좋고, 디버깅이 용이하게 된다. 둘째, 벌레가 들 꼬인다. - 버그 발생률이 더 적어진다. 셋째, 세금을 면제 받을 ..
이 이야기들은 전부 표준 STL 컨테이너에 관한 이야기이다. 만약 vectoer vcInt 라면, vcInt.size() 또는 vcInt.empty() 를 말한다. size() 함수는 컨테이너에 적재되어진 원소의 갯수를 반환해 주는 함수이고 empty() 함수는 컨테이너에 적재되언 원소가 하나도 없다면 TRUE 를 반환해 주는 함수이다. 이렇게 말하니 좀 어렵다 size() 함수는 몇개 있냐? 물어 볼때 쓰고 empty() 함수는 비워있냐? 물어 볼때 쓴다. size()는 전부 count 해야 하는 비용을 물어야 하며, empty()는 처음과 끝이 같은지만 비교하는 비용만 물면 된다. 여담으로.. vector 컨테이너는 스스로 카운팅을 하기 때문에 size() 나 empty() 나 똑같은 비용을 지불한다..
최근댓글