请帮助我接近完成这个庞大的项目。 我不明白我收到的错误
score-=(double)atof(kitty.pop_front());
!无效使用void表达式
kitty是一种deque类型的字符串。分数是一个很长的两倍。我对类型转换不好,但错误似乎真的无关?
我尝试了其他论坛的解决方案,但它们都是相对无关的。
答案 0 :(得分:1)
dequeue::pop_front()返回void:
void pop_front();
所以你不能在表达式中使用它。
你可以这样做:
score-=(double)atof(kitty.front().c_str());
kitty.pop_front();
答案 1 :(得分:0)
如果deque
中的值为std::string
,则atof
函数调用应为:
score -= atof(kitty.front().c_str());
原因是atof
需要const char*
参数,std::string::c_str()
会返回代表字符串的const char*
。
其次,front()
函数返回双端队列前面的值。如果您要从front
中删除该值,请拨打kitty.pop_front()
。