23.01.02 17:23 작성
·
232
0
Vector<WSABUF> wsaBufs;
wsaBufs.reserve(_sendEvent.sendBuffers.size());
for (SendBufferRef sendBuffer : _sendEvent.sendBuffers)
{
WSABUF wsaBuf;
wsaBuf.buf = reinterpret_cast<char*>(sendBuffer->Buffer());
wsaBuf.len = static_cast<LONG>(sendBuffer->WriteSize());
wsaBufs.push_back(wsaBuf);
}
강의의 코드는 위와 같이 작성되어 있습니다.
이렇게 할 경우 wsaBufs.push_back(wsaBuf) 가 복사 연산으로 수행되는 건가요?
만약 그렇다면 복사 연산을 거치지 않고 바로 객체를 벡터에 넣을 수 있는 방법은 없을까요?
답변 1
0
2023. 01. 02. 17:36
포인터 하나와 정수 하나라서 복사해도 전혀 상관 없습니다.
하지만 vector에 복사를 거치지 않고 넣고 싶다면
이동 연산을 지원하는 emplace_back을 사용하시면 됩니다.