【问题标题】:How to use a vector of deques of a parameterized class in C++?如何在 C++ 中使用参数化类的双端队列向量?
【发布时间】:2014-11-16 00:59:35
【问题描述】:

我正在尝试使用自定义类的双端队列向量。我有这个:

std::vector<std::deque<ParamClass<Type1,Type2>>> lines;

其中ParamClass 是具有两个类参数的参数化类。上面的行在另一个类的标题(作为私有变量)中。该类的构造函数对变量lines 没有任何作用。

稍后在我尝试的代码中:

std::cout << lines.at(0).size() << std::endl;

这应该打印 0(因为向量中的双端队列没有添加任何内容。但是,我遇到了段错误。我是否必须以某种方式“初始化”双端队列或其他什么?

【问题讨论】:

  • 你确定向量不是空的吗?

标签: c++ vector segmentation-fault deque


【解决方案1】:

您正在访问元素 0,但您没有添加任何内容,因此 at(0) 尝试访问非法内存

你需要先确保lines.size() > 0

【讨论】:

  • 一个小改进:它不会访问非法内存,at() 会抛出一个 out_of_range 异常。
  • 我不敢相信我错过了这个。谢谢,会在几分钟内接受。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-18
  • 2013-03-14
  • 2017-04-22
  • 2015-05-01
  • 2022-10-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多