반응형 전체 글675 C++ std::vector 사용시 push_back()과 emplace_back() 차이에 대해서 push_back() 이미 만들어진 객체를 복사 또는 이동해서 추가push_back은 이미 생성된 객체를 추가할 때 사용한다.내부적으로 복사 생성자 혹은 이동 생성자가 호출된다.std::vector v;std::string s = "Hello";v.push_back(s); // 복사 발생v.push_back(std::move(s)); // 이동 발생 (C++11 이상)v.push_back("World"); // 임시 객체 생성 후 이동emplace_back() 그 자리에서 바로 생성(in-place construction)전달된 인자를 사용해 생성자에서 바로 객체 생성, 새로 만드는 객체를 추가할 때 사용한다.별도의 임시 객체를 만들지 않아서 불필요한 복사나 이동이 없음성능적으로 더 효율적.. 2025. 10. 7. C++ std::map, std::unordered_map 사용시 erase 단순화하기 원래 작성했던 코드최근에 회사에서 팀원분에게 코드 리뷰를 받은 사항에 대해서 정리하려고 한다. 아래의 코드는 내가 원래에 작성하던 스타일의 코드이다. 컨테이너에서 find를 하고 값이 있으면 제거한다.const auto& iter = m_deactivatedTids.find(tid);if (iter != m_deactivatedTids.end()){ m_deactivatedTids.erase(iter);}단순화한 코드하지만 팀원분이 제안한 코드는 아래와 같다. erase(key)를 사용할 때는 find가 필요 없다는 것이다.m_deactivatedTids.erase(tid);erase() 메서드의 동작std::map이나 std::unordered_map에서 erase(key)는 내부적으로 find(.. 2025. 9. 22. 애굽민수와 함께하는 파라오의 이집트, 빛으로 깨어난 고대 문명 후기 처음으로 방문해 본 빛의 시어터국내 거의 유일의 이집트학 전공자인 곽민수 소장님이 스페셜 도슨트를 진행한다는 이야기를 지인에게 듣고서는 어디에서 하고 어떤 전시인지 생각하지 않고 바로 예매를 진행했다. 사실 그 정도로 이집트를 좋아하거나 관심이 있는 건 아니지만, 곽민수 소장님을 한번 지근거리에서 보고 싶은 마음이 컸다. 침착맨 채널이나 안될과학에서 몇 번 이집트 관련 영상에서 봤는데, 수염과 푸근한 이미지 그리고 이집트 전문지식이 어우러져 멋진 사람이라고 생각했기 때문이다.그렇게 전시회 당일이 되었고 해당 이집트 전시회가 서울 그랜드워커힐 지하에 있는 빛의 시어터에서 열린다는 것을 알았다. 빛의 시어터는 광진구에 위치한 그랜드워커힐호텔 지하에 위치한 몰입형 미디어아트 전시관이다. 빛의 시어터버지니 마르.. 2025. 8. 9. C++ unordered_map이란? unordered_map이란?기존에 익숙한 map과 비슷하지만 정렬되지 않은 해시 기반 컨테이너(이름에서부터 정렬되지 않음을 들어냄)Key-Value 쌍으로 데이터를 저장Key를 기준으로 해시(hash)를 이용해 빠르게 탐색, 삽입, 삭제가 가능내부적으로 해시 테이블(Hash Table)을 사용원소의 순서를 보장하지 않음. (반복자로 순회 시 삽입 순서로 정렬되어 있지 않음)평균 시간 복잡도탐색(find) : O(1)삽입(insert) : O(1)삭제(delete) : O(1)기본 사용 예제#include #include using namespace std;int main(){ unordered_map unMap; unMap.emplace(1, "jane"); unMap.emplace(2.. 2025. 7. 6. 비주얼 스튜디오 2022(Visual Studio 2022)에서 C++ 언어 표준 변경하기 C++ 언어 표준 변경하고 모던 C++을 사용해 보자비주얼 스튜디오에서 모던 C++을 사용하려고 예제를 작성했는데 이럴 수가 컴파일 에러가 발생했다.이유는 바로 C++ 17에서 추가된 구조적 바인딩을 사용했기 때문이다. 이를 해결하기 위해서는 프로젝트 속성에서 C++ 17 표준 이상으로 올려줘야 한다. 수정해 보자.#include int main(){ std::cout myPair = { 1, 2 }; auto [a, b] = myPair; // error}C++ 언어 표준 변경하기프로젝트 선택 후 - 마우스 오른쪽 클릭 - 속성(R) 클릭구성 속성 > C/C++ > 언어 > C++ 언어 표준 > 해당하는 C++ 표준을 선택(기본값은 C++ 14)C++ 17로 변경했더니 바로 빨간 줄이 사라.. 2025. 7. 1. 서울역 버거 맛집 <파이브가이즈 서울역점> 미국 버거 먹으러 가자 드디어 방문한 파이브가이즈(Five Guys)!파이브가이즈가 한국에 들어온 지 벌써 2년이 돼 가는 시점에서 드디어 말로만 듣던 파이브가이즈에 방문했다.그동안 유튜브를 통해서 여러 번 보고 먹어보고 싶다고 생각만 했지 실행하지는 못하고 있었는데 여기에는 여러 이유가 있겠지만, 우선 사람이 많아서 기다릴 정도로 먹고 싶지는 않았고 굳이 멀리 찾아가면서까지 먹을 정도는 아니라고 생각했다. 하지만 최근에 파이브가이즈 매장이 많이 생기면서 확실히 접근성이 좋아지고 대기하는 시간이 없다는 이야기가 들리면서 방문해야겠다고 마음을 먹었는데 우연히 서울역 근처에 갈 일이 생겨서 파이브가이즈 서울역점에 방문하게 되었다.파이브가이즈(Five Guys) 관련 정보미국에서 핫한 햄버거 가게, 미국 3대 프리미엄 버거로 불린다.. 2025. 6. 22. 이전 1 2 3 4 ··· 113 다음