class CLn { private: vector<CPt> pts; public: CLn() {}; void Insert(int pos, const CPt& pt) { pts.insert(pts.begin() + pos), pt; } void Erase(int pos, const CPt& pt) { pts.erase(pts.begin()) + pos; } int Size() { return pts.size(); } };这段代码有什么问题?
时间: 2024-03-05 18:51:49 浏览: 66
cln:cln 移动应用程序
这段代码有两个问题:
1. 在 `Insert` 函数中,逗号后面应该是 `pt` 而不是 `, pt`,因为 `insert` 函数的参数是一个迭代器和一个值,两者之间用逗号分隔。
2. 在 `Erase` 函数中,应该将 `pts.erase(pts.begin() + pos);` 放在一对括号内,因为 `+` 运算符的优先级比 `erase` 函数低。
下面是修改后的代码:
```cpp
class CLn {
private:
vector<CPt> pts;
public:
CLn() {};
void Insert(int pos, const CPt& pt) {
pts.insert(pts.begin() + pos, pt);
}
void Erase(int pos, const CPt& pt) {
pts.erase(pts.begin() + pos);
}
int Size() {
return pts.size();
}
};
```
阅读全文