Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
复制向量中的二叉树 我试图在C++向量中复制一个二叉树,我有一个错误,我找不到它是在哪里生成的。此文件位于头文件(.h)中_C++_Vector_Binary Tree - Fatal编程技术网

复制向量中的二叉树 我试图在C++向量中复制一个二叉树,我有一个错误,我找不到它是在哪里生成的。此文件位于头文件(.h)中

复制向量中的二叉树 我试图在C++向量中复制一个二叉树,我有一个错误,我找不到它是在哪里生成的。此文件位于头文件(.h)中,c++,vector,binary-tree,C++,Vector,Binary Tree,我在.cpp文件中使用了以下方法: void ASCVektor(vector<int> v) { int i, j; for (i = 0; i < v.size() - 1; i++) { for (j = i + 1; j < v.size(); j++) { if (v[i] > v[j]) { int tmp = v[i]; v[i] = v[j];

我在.cpp文件中使用了以下方法:

void ASCVektor(vector<int> v)
{
  int i, j;
  for (i = 0; i < v.size() - 1; i++)
{
    for (j = i + 1; j < v.size(); j++)
    {
        if (v[i] > v[j])
        {
            int tmp = v[i];
            v[i] = v[j];
            v[j] = tmp;
        }
    }
   }
}

void printVektor(vector<int> v)
{
  int i;
  for (i = 0; i < v.size(); i++)
  {
    cout << v[i] << ", ";
  }
  cout << endl;
}

void copyTreeinVector(NyjePeme *T, vector<int> v)
{

  if (T != NULL)
  {
    copyTreeinVector(T->left, v);
    v.push_back(T->Key);
    copyTreeinVector(T->right, v);
    return;
  }
  return;
}

NyjePeme *PemeKerkimi::TheKSmallestElement(int k)
{
   vector<int> v;
   coptyTreeinVector(root, v);
   ASCVektor(v);
...
   
void asvektor(向量v)
{
int i,j;
对于(i=0;iv[j])
{
int tmp=v[i];
v[i]=v[j];
v[j]=tmp;
}
}
}
}
无效打印向量(向量v)
{
int i;
对于(i=0;i
copyTreeinVector()函数中存在问题,错误消息如下:


进程返回-1073741819(0xC0000005),抛出该消息需要一段时间。我搜索了该错误,它是由于指针使用不当而生成的……但我在我的代码中找不到问题,您应该通过引用在
CopyTreeInvestor
函数中传递向量

而不是写作

void copyTreeinVector(NyjePeme *T, vector<int> v)
void copyTreeinVector(NyjePeme*T,向量v)
你应该写信的

void copyTreeinVector(NyjePeme *T, const vector<int>& v)
void copyTreeinVector(NyjePeme*T、const vector&v)
下面是一些与该问题相关的附加链接


PemeKerkimi=BinaryTree NyjePeme=Node刚刚忘记翻译:)请将此作为一个。不可能按照发布的方式回答您的问题。您正在通过值将向量传递给函数。这意味着您尝试将数据复制到的主向量与函数中存在的向量不同。通过引用传递CE代替:<代码> STD::向量和V<代码>。谢谢SOO。这是有效的。@ KLujyMata注意到C++是一种基于值的语言,而不是基于引用的语言。如果你熟悉通过引用自动传递对象的语言(java,C++等),那么这就是你为C++做了错误的原因。
void copyTreeinVector(NyjePeme *T, const vector<int>& v)