【问题标题】:Is it possible to create a queue of object arrays in C++?是否可以在 C++ 中创建对象数组队列?
【发布时间】:2015-06-17 13:52:12
【问题描述】:

例如:

class Hooks {


 public:
 std::string text;
 std::string hookfont;

 HookFromEncouter()
 {
     text = "Would you befriend an elf? ";
     hookfont = "COPRGTB.ttf";
 }

 HookFromEncouter(string text1, string hookfont1)
 {
     text = text;
     hookfont = hookfont1;
 }

 };

我需要将此对象的数组存储在队列中:

如何使用可变长度的对象数组创建和访问这样的队列?还是静态长度?

如:

queue<Hooks[]> Hooks_queue;

太好了。这段代码给了我一个错误:

vector<Hooks> hooks_import;
hooks_import.push_back(Hooks());
hooks_import.push_back(Hooks());

Hooks_queue.push(hooks_import);

错误:没有重载函数的实例

【问题讨论】:

  • queue&lt;vector&lt;Hooks&gt;&gt; ?

标签: c++ arrays object queue


【解决方案1】:

如果内部数组是可变长度的,或者直到运行时才知道长度,你可以使用

std::queue<std::vector<Hooks>> Hooks_queue;

如果大小在编译时是固定的并且已知,则可以使用

std::queue<std::array<Hooks, N>> Hooks_queue;

其中N 是每个array 的大小

【讨论】:

  • 太棒了。这段代码给了我一个错误:vector hooks_import; hooks_import.push_back(Hooks()); hooks_import.push_back(Hooks()); hooks_queue.push(hooks_import);错误:没有重载函数的实例
  • 太棒了。这段代码给了我一个错误: 'code' vector hooks_import; hooks_import.push_back(Hooks()); hooks_import.push_back(Hooks()); hooks_queue.push(hooks_import); “代码”错误:没有重载函数的实例
  • 是的。那么我该如何解决呢?谢谢
  • std::queue<:vector>> Hooks_queue;按照你的指示
猜你喜欢
  • 2023-03-12
  • 1970-01-01
  • 2011-01-15
  • 2016-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-21
  • 2011-06-16
相关资源
最近更新 更多