Vector erase 息
做把struct 塞去 vector的候,一小。
文字版列印?
class TCP
{
private:
AnsiString cv_Name;
vector <TCP> cv_tmp;
void __fastcall test(const unsigned int Index, const TCP& Item);
public:
AnsiString atmp;
//__property AnsiString Name = {read=cv_Name,write=cv_Name}; //解取消有常生,原因不明
};
void __fastcall TCP::test(const unsigned int Index, const TCP& Item)
{
cv_tmp.erase(&cv_tmp[Index]);
}
上面是我的code,__property AnsiString Name 存在的候,
cv_tmp.erase(&cv_tmp[Index]);
一行就出 E2328 Classes with properties cannot be copied by value的息。
不知道啥米而生,不知道各位大大在撰程式的候有生似的情?
[解决办法]
cv_tmp.erase(&cv_tmp[Index]);
错误,参数是迭代器。你给的参数是地址。
cv_tmp.erase( cv_tmp.begin() + Index );