C++ 无法返回std::tuple<;标准::向量<;int>;,标准::向量<;int>&燃气轮机;从功能

C++ 无法返回std::tuple<;标准::向量<;int>;,标准::向量<;int>&燃气轮机;从功能,c++,function,vector,data-structures,tuples,C++,Function,Vector,Data Structures,Tuples,我正在尝试编写一个返回std::tuple的函数。我成功地创建了两个std::vectorstart\u offset\u vector和end\u offset\u vector。并初始化元组,如下所示: std::tuple<std::vector<int>, std::vector<int>> A::createTuple( std::string paragraph) { ... std::tuple<std::vector&l

我正在尝试编写一个返回
std::tuple
的函数。我成功地创建了两个
std::vector
start\u offset\u vector和end\u offset\u vector。并初始化元组,如下所示:

std::tuple<std::vector<int>, std::vector<int>> A::createTuple(
    std::string paragraph) {
  ...

  std::tuple<std::vector<int>, std::vector<int>> offsets_tuple =
    std::make_tuple(start_offsets_vector, end_offsets_vector);
  return offsets_tuple;
}
std::tuple A::createTuple(
std::字符串(段落){
...
std::tuple offset\u tuple=
std::make_tuple(开始偏移量向量、结束偏移量向量);
返回单元;
}
以下是一些调试信息:

但是当函数返回时,它返回时在
returnoffsets\u tuple
处发生异常。调用堆栈如下所示:


对于返回包含两个向量的元组的函数,是否存在任何错误步骤?我非常感谢你的观点,非常感谢

该异常是由于程序中其他地方的错误而发生的。显示的代码没有问题。仅仅因为你的C++程序崩溃并不意味着bug在哪里。C++不这样工作。该错误可能出现在迄今为止执行的代码中的任何地方,除了程序没有立即崩溃,而是一直持续到由该错误导致的内存损坏最终导致此处崩溃。在异常上添加断点并再次调试它,这似乎是您的构造函数抛出的。调试帮助请求必须包括。您的代码没有定义
A
(可能
A::
可以从函数名中删除?)并且使用我选择的参数调用它无法再现错误。(MRE不需要在整个程序的意义上起作用,但它必须有足够的代码来重现错误。您可以从现有代码开始,尝试添加代码,直到问题再次出现。也许可以看看是否可以去掉参数以使示例更简单。)