从抽象类创建链
create chain from abstract class
我有一个作业,所以我并不是真的想找人来解决它,只是想了解实际要求的内容,因为我觉得它的措辞很差。
1. Please implement the function described in the comment of this incomplete code snippet
// AudioEffect is the base class for effects that can process
// audio and have a subsequent effect (next).
struct AudioEffect {
virtual ~AudioEffect() = default;
virtual void process(float* buf, size_t num) = 0;
std::shared_ptr<AudioEffect> next;
};
// Implement a function that checks if there is a feedback loop
// in the effects chain.
... detect_feedback(...)
{
}
我能看到的唯一循环是在指针链中。
因此,您必须遵循next
指针,并确保永远不会遇到两次相同的效果。
你要检查给定的图形是否是循环的。
函数参数应该是std::shared_ptr<AudioEffect>
对象的容器。返回布尔值。
对于容器中的每个元素,请使用 BFS 或 DFS 遍历图形。每个节点都应该与一个指标组合,其值最初为 0,访问后变为 1。程序应在访问节点之前检查指标。如果为 1,则图形是循环的。您可以引发异常或中断循环以退出搜索。
您必须学习数据结构和算法。去吧!
您应该创建一个效果的链接列表,然后遍历该列表并检查每个共享指针的use_count。如果大于 2,则存在反馈。
相关文章:
- 无法创建抽象类的实例
- C ++如何在原始抽象类中创建一个函数,该函数接受派生类的输入
- 如何创建shared_ptr抽象类的容器
- 从抽象类继承以创建另一个抽象类时,我应该重新声明所有虚函数吗?
- 为什么我们不能用抽象类创建容器?
- 使用抽象类的类和实现此抽象类的创建对象
- 从抽象类创建链
- 如何在代码中创建抽象类,让蓝图扩展它,并将该蓝图返回给代码进行实例化?
- 如何创建抽象数据类型的模板类?
- 如何在 C++ 中创建抽象类的对象或数据结构?
- 创建抽象类 C++ 的对象
- 如何在派生实例化之前创建抽象类
- 如何创建抽象类的内联实现
- 无法在函数 main() 中创建抽象类的指针
- 在c++ /QT中创建抽象类对象的QList
- 如何创建抽象类成员
- 如何在c++中创建抽象类的数组
- 错误LNK2001:未解析的外部符号-当创建抽象类c++
- 如何创建抽象类的无名派生类的对象
- 正在创建抽象类的克隆