gpt4 book ai didi

c++ - 从 ‘void’ 到非标量类型的转换‘std::pair

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:14:30 24 4
gpt4 key购买 nike

我在电子表格 obj 中有一堆对:

std::stack< std::pair<std::string, std::string> > undoStack;

我正在尝试弹出堆栈并将其分配给另一对:

std::pair<std::string, std::string> change = spreadsheets.at(i).undoStack.pop();

我收到这个错误:

error: conversion from ‘void’ to non-scalar type ‘std::pair<std::basic_string<char,   std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >’ requested

这里出了什么问题?

最佳答案

stack::pop() 返回 void 但您正试图将其分配给一个变量。您需要调用 top() 以便在将元素从堆栈中弹出之前检索该元素。

std::pair<std::string, std::string> change = spreadsheets.at(i).undoStack.top();
spreadsheets.at(i).undoStack.pop();

您应该查看 std::stack 的文档熟悉它的成员函数和使用。

documentation for std::stack

关于c++ - 从 ‘void’ 到非标量类型的转换‘std::pair<std::basic_string<char, std::char_traits<char>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16160292/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com