gpt4 book ai didi

c++ - 我如何存储和获取结构队列?

转载 作者:行者123 更新时间:2023-11-30 01:52:09 25 4
gpt4 key购买 nike

如何将结构的值存储和获取到具有 2 个值的队列中?我想排队这几个值。

| 4 , 2 |

| 3, 5 |

其中 4,2 和 3,5 可以是一个变量,例如

primaryQ.push(a, b);

我的结构:

struct primarytemp{
double process;
double secondary;
};

下面是我声明 main 的方式:

int main(){
queue<primarytemp> primaryQ;
primaryQ.push(4, 2);
}

最佳答案

您可以只将一个 primarytemp 对象插入队列,而无需修改类型:

queue<primarytemp> q;

q.push(primarytemp{4., 2.}); // Requires current C++ standard (C++11)

primarytemp p = {3., 5.};
q.push(p); // Also works pre-C++11

正如其他人所提到的,您可以向 primarytemp 添加构造函数,尽管这意味着它不再是聚合。这可能重要也可能不重要。

primarytemp
{
primarytemp() : process(), secondary() {}
primarytemp(double process, double secondary)
: process(process), secondary(secondary) {}

double process;
double secondary;
};

这让你可以说

q.push(primarytemp(4., 2.)); // Also works pre-C++11

要访问您刚刚推送的元素,请使用返回引用的 back() 方法:

std::cout << "process" << q.back().process() << std::endl;

您也可以复制该元素:

primarytemp = q.back();

front() 方法允许您对队列中的第一个元素执行相同的操作。

移除前面的元素:

q.pop();

关于c++ - 我如何存储和获取结构队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25074741/

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