【问题标题】:How do you declare a stack of type struct? in c++你如何声明一个结构类型的堆栈?在 C++ 中
【发布时间】:2017-07-19 17:19:17
【问题描述】:

在下面的代码中,如何正确声明一个struct类型的堆栈,并将字符串压入堆栈,以便将它们保存在struct中?您如何指定要将变量推送到结构的某个变量中的位置?导致错误的行被注释掉。谢谢!

#include <iostream>
#include <stack>
using namespace std;

struct purchasedItem
{
    string Name;
    float Cost;
};

int main()
{
    stack<purchasedItem> shoppingBasket;
    string word=" ";
    cout << "Enter some items:" << endl;
    while(word!="quit")
    {
        cin >> word;
        shoppingBasket.push(word); // this line causes an error
    }
return 0;
}

【问题讨论】:

  • 您有一堆purchasedItems,但您正试图将string 放入其中,但无法编译。您应该改为创建一个purchasedItem,将其Name 设置为word,并可能初始化Cost.push
  • 您创建一个包含您的单词和成本的那种类型的实例。你把那个实例推入堆栈。
  • 题外话:由于测试的位置,您将把单词 quit 添加到堆栈中(如果可能的话)while(cin &gt;&gt; word &amp;&amp; word!="quit") 将读取一个单词,确保它确实被读取并且流没有结束什么的,然后测试读取的单词不是“退出”。
  • 谢谢!它有效

标签: c++ struct stack


【解决方案1】:

我建议使用 std::stack 进行此类操作:http://en.cppreference.com/w/cpp/container/stack

【讨论】:

    猜你喜欢
    • 2017-01-30
    • 2014-11-30
    • 2018-06-13
    • 1970-01-01
    • 1970-01-01
    • 2011-02-10
    • 1970-01-01
    • 2012-06-10
    相关资源
    最近更新 更多