【发布时间】:2013-07-19 19:05:13
【问题描述】:
我有以下功能, 以前可以正常工作,但是,我不知道我做了什么,我开始得到一些奇怪的错误
容器是一个指针向量
template<typename Container>
void delete_collections(Container& c)
{
while(!c.empty())
{
delete c.back(); //<=== here
c.back() = NULL;
c.pop_back(); //<=== & here
}
}
第一个错误
**此行有多个标记
- (每个未声明的标识符都是
- `back' 未声明(首先使用这个
第二个错误
- `pop_back' 未声明(首次使用
解决方案 我曾经错误地将映射传递给函数,但我希望编译器给出任何警告。
【问题讨论】:
-
Container的实际类型是什么? -
我发送一个指针向量
-
看起来您使用没有 back() 和 pop_back() 方法的 Container 实例化了模板化类。
-
适用于我的矢量。 see
-
whole 错误信息怎么样?也就是说,这将适用于 vector、deque 和 list,但不适用于 map、set 及其无序/多变体。顺便说一句,NULL 的赋值是不必要的。
标签: c++ pointers vector compiler-errors