std::vector<Foo> v;
v.reserve(5);
v.resize(5);
v[0]=1;
v[1]=2;
v[2]=3;
v[3]=4;
v[4]=5;
//v.resize(5); // 좆됨
v.pop_back();
어제 누가 올린 글땜에 알았는데 pussy_fuck 이나 emplace_back 요소 추가하면서 항상 size 랑 capacity 무조건 비교하게 되어 있다 그러더라고
그래서 저 두개 안쓰고 바로 첨자연산으로 돌려버리면 그나마 빨리 쓸수 있지 않을까 생각해봄 ㅋㅋ 대신 resize 를 reserve 직후에 써줘야됨 나중에 쓰니까
자꾸 객체 기본값으로 되길래 '혹시 첨자연산도 예외만 던지지 않을뿐 at() 메소드처럼 size() 검사하는건 똑같은건가''하고 ㅈㄴ 헷갈렸었음 사이즈 넘어가면
실제로 쓰기 연산은 안되는게 아닐까 하고. 근데 그런건 아닌거같고 사이즈만큼 전부 기본 생성자로 걍 덮어씌워지는 거 같음 굳이 왜 그케 해놨는지 모르겠는데,
중요한건 push나 emplace 처럼 매 추가마다 size 검사하는게 실제 코드에서 얼마나 느려지게 만드는건지는 잘모르겠음 실제로 크게 문제가 안되니까 매번
검사하게 만들어놓지 않았나 싶기도 하고
해당 댓글은 삭제되었습니다.
근데 생각해보니 저렇게 하면 굳이 reserve 쓰는 의미도 없네 배열 요소 ctor 호출안하려고 쓰는건데 resize쓰면 도로 호출해버리니 씨볼ㅋㅋㅋ 추가 메소드에서 애초에 테스트를 안하게 만드는게 가장 좋긴햇을텐데 -_-;; 저런식으로 짜면 코드 ㅈㄴ구려보임 ㅋㅋ
큰 의미 없다고 봄