- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试完成一个在给定 x 值时计算多项式的程序。多项式使用 STL 的 forward_list 存储在类的对象中。
class PolyTerm {
private:
int _order = 0;
double _coeff = 0.0;
public:
PolyTerm() = default;
PolyTerm(int order, double coefficient) : _order(order), _coeff(coefficient) {}
void setOrder(int order) { _order = order; }
void setCoeff(double coeff) { _coeff = coeff; }
int getOrder() const { return _order; }
double getCoeff() const { return _coeff; }
};
我获取对象和 x 值的函数如下所示:
double evaluate(const forward_list<PolyTerm>& terms, double x) {
double answer = 0;
forward_list<PolyTerm>::iterator it;
while (it != terms.end()) {
answer += it->getCoeff() * pow(x, it->getOrder());
it++;
}
return answer;
}
我的编译器没有显示任何错误,但是一旦我尝试运行该程序,我就会收到一个弹出窗口,提示“调试断言失败!”与表达式:forward_list 迭代器不兼容 Image of pop-up我很确定我将迭代器声明为与包含多项式的列表相同的类型,所以我不确定为什么会收到此错误。
谁能给我解释一下这是怎么回事?在此先感谢您的帮助。
最佳答案
forward_list<PolyTerm>::iterator it;
它没有初始化。它必须用前向列表的第一个元素初始化。
forward_list<PolyTerm>::iterator it = terms.begin();
你可以简化你的循环,你不会使用 it
for (const auto& term : terms)
answer += term.getCoeff() * pow(x, term.getOrder());
关于c++ - forward_list 迭代器不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58359817/
我想使用 std::forward_list 因为: Forward list is a container which supports fast insertion and removal of
std::forward_list具有member function: size_type remove(const T& value); 和一个non-member function std::er
我正在阅读有关此功能工作方式的不同解释。 cplusplus.com说这个函数应该“直接在 i 之后移动元素”。 然而cppreference.com表示它拼接元素 AT i。 MSvisual st
我有一个 std::forward_list我有一个类 Delegate (取自 here )是一个具有可变类型签名( typename return_type, typename... Args )
我正在尝试完成一个在给定 x 值时计算多项式的程序。多项式使用 STL 的 forward_list 存储在类的对象中。 class PolyTerm { private: int
我需要实现一个请求列表,一次发送一个请求(节流)并等待答复(始终按顺序)。因此操作是: 插入(在末尾) 删除(开始时) 向前走(“已发送”指针) 我刚刚发现了 std::forward_list,并且
As per this question , 和 假设我有一个对容器本身的可变引用 ,可以使用以下方法安全地删除迭代器的常量性: foo::const_iterator cit = ... ; foo
我正在尝试创建一个带有 forward_list 的按字母顺序排序的列表。计划是将所有元素与我要插入列表的元素进行比较,如果它大于一个元素,则将其插入。但问题是我想不出在最后一个元素之后插入元素的方法
我正在研究弗洛伊德的 Tortoise and Hare algorithm ,并尝试使用 std::forward_list 对问题建模。具体来说,我想使用 std::forward_list 有意
我正在实现一个非常简单的图模型,其中我有一个包含前向列表的结构,该列表带有指向它的邻居的指针。这些邻居又是相同类型的结构。 #include #include #include #include
我会为 C++11 forward_list 的节点创建一个内存池。 是否可以将 BOOST 池内存与 std::forward_list 一起使用? 最佳答案 This stack-overflow
我有两个转发列表:list1和 list2 .我想遍历第一个并根据条件将元素转移到第二个。这是一个使用 forward_list 的例子那行不通,但我认为表达了我想要的。 #include #inc
标准委员会选择为 std::forward_list 实现 API 是否有某种原因使其不满足序列 容器概念要求? Sequence 概念要求指定容器必须与以下表达式兼容: c.insert(it, v
这个问题在这里已经有了答案: std::forward_list and std::forward_list::push_back (5 个答案) 关闭 9 年前。 forward_list 是一个
好吧,我认为这个问题已经很概括了。我有一个独特项目的 forward_list,并想从中删除单个项目: std::forward_list mylist; // fill with stuff myl
std::forward_list 提供了 insert_after 和 erase_after 成员,它们可能不需要实际访问 std::forward_list对象。因此,它们可以作为 static
我在 C++11 中遇到了一些困难。我想创建函数 isSorted 如果我的 std::forward_list 已排序则返回 true,否则返回 false。 我想象中的代码是这样的: templa
我试图保留一个特定(基)类实例的全局列表,以便我可以随时通过遍历此全局列表来跟踪它们。 我认为解决这个问题的最合适方法是使用侵入式列表。例如,我听说人们可以通过深入研究 Linux 内核来遇到这些生物
我知道 std::forward_list 是一个单链表。我想知道如何将第一个元素(头)移动到 forward_list 的末尾。没有拷贝或创建新节点! 我试过以下方法: std::forward_l
以下是一个很琐碎的问题,以前可能有人问过,但是,我无法通过搜索找到答案。 我想做的是使用 std::forward_list 在 C++ 中实现“Cracking the Coding Intervi
我是一名优秀的程序员,十分优秀!