我想在向量的末尾削減CRLF,但我的代碼不工作(在第一個循環while - 等於調用並返回false)。在調試模式中的 「i」 == 0,並有 「PTR」 值== 「0x002e4cfe」向量的無符號字符迭代器不工作
string testS = "\r\n\r\n\r\n<-3 CRLF Testing trim new lines 3 CRLF->\r\n\r\n\r\n";
vector<uint8> _data; _data.clear();
_data.insert(_data.end(), testS.begin(), testS.end());
vector<uint8>::iterator i = _data.end();
uint32 bytesToCut = 0;
while(i != _data.begin()) {
if(equal(i - 1, i, "\r\n")) {
bytesToCut += 2;
--i; if(i == _data.begin()) return; else --i;
} else {
if(bytesToCut) _data.erase(_data.end() - bytesToCut, _data.end());
return;
}
}
非常感謝您的回答。但我需要與迭代器版本,因爲我的代碼是用於解析分塊的http傳輸數據,這是writed向量,我需要func,這將需要一個指針向量和迭代器定義位置向後刪除CRLF。我認爲,我的所有問題顯然都包含在迭代器中。
_'but但我的代碼不工作'_很模糊!改善你的問題... –