【发布时间】:2010-07-26 15:13:43
【问题描述】:
我在以下代码中遇到了段错误:
我有一个带有方法的抽象类A
virtual bool Ok() const;
现在,我有以下向量
std::vector<A*> v;
填充了几个指向现有子对象的指针。我想将Ok()方法的结果累加如下:
std::vector<bool> results;
std::transform(v.begin(), v.end(), results.begin(), std::mem_fun(&A::Ok));
std::accumulate(results.begin(), results.end(), true, std::logical_and<bool>());
不幸的是,我总是在第二行得到一个段错误,我不明白为什么。用标准 C++ 循环替换转换调用修复了段错误。有什么想法吗?
【问题讨论】: