我有以下结构:
struct MsgProperties
{
DWORD msgSize;
std::vector<BYTE> vbuffer;
//-Constructor
MsgProperties(DWORD A = 0) : msgSize(A){}
};
我想将该结构与c ++向量一起使用,这就是我所做的:
std::vector<MsgProperties> ReadText;
BYTE buffer[MAX_BUFFER_SIZE];
DWORD bytesRead;
do
{
bytesRead = myFile.Read(buffer, MAX_BUFFER_SIZE);
ReadText.push_back(MsgProperties(bytesRead, std::vector<BYTE>((BYTE*)buffer, (BYTE*)buffer + bytesRead)));
} while (bytesRead > 0);
但我无法弄清楚如何让它正常工作。有人能告诉我我错过了什么吗?
答案 0 :(得分:1)
看起来你需要另外2个构造函数:
MsgProperties(DWORD A, const std::vector<BYTE>& vec) : msgSize(A), vbuffer(vec) {}
MsgProperties(DWORD A, std::vector<BYTE>&& vec) : msgSize(A), vbuffer(vec) {}
Alernatively,一个构造函数也会很好:
MsgProperties(DWORD A, std::vector<BYTE> vec) : msgSize(A), vbuffer(std::move(vec)) {}
另外,我不明白为什么你需要消息大小。向量的大小是邮件大小。