728x90
반응형

삭제 2

[C++] STL map에서 erase 사용 시 주의점

for (auto itr = m_elems.begin(); itr != m_elems.end(); ++itr) { if (itr->second->locking && !ignore_locked_obj) continue; m_elems.erase(itr); } map을 사용하여 조건을 통한 삭제를 실행하려 했는데, runtime error가 발생한다. 조건을 만족하는 iterator가 나타났을 때 해당 iterator를 지워버리면 해당 iterator는 end가 되어 버렸다. erase 하면 pos 값이 날아가버려서 그런가 보다. 미리 복사해 둬야 에러를 발생시키지 않는다. for (auto itr = m_elems.begin(); itr != m_elems.end();) { if (itr->second->..

[자료구조] 배열 : 기초 자료 구조

배열은 컴퓨터 과학에서 기초적인 자료 구조 중 하나다. 배열은 리스트와 같은 개념이다. array - ['apple', 'bananas', 'cucumbers', 'dates', 'elderberries'] 배열의 인덱스는 데이터가 어디에 있는지 알려주는 숫자이며, 예제의 경우 apple은 0, dates는 3의 값을 가진다. 대부분의 자료 구조는 4가지 기본 연산을 가지고 있다. 읽기 : 자료 구조 내 특정 위치를 찾아보는 것 검색 : 자료 구조 내 특정 값을 찾는 것 삽입 : 자료 구조에 새로운 값을 추가하는 것 삭제 : 자료 구조에 값을 제거하는 것 자료 구조에서 연산의 빠르기는 시간의 단위를 사용하지 않는다. H/W의 사양에 따라 달라질 수 있기 때문이다. 자료 구조에서 연산은 "얼마나 많은 단계..

728x90
반응형