小编zai*_*295的帖子

当我们返回一个像向量、列表这样的 C++ 容器时。会发生什么?

vector<int> function(...)
{
      .......
      .......
      vector<int> C = some value;
      return C
}
int main()
{
      X = function(...)
}
Run Code Online (Sandbox Code Playgroud)

x 的值是什么,它是 C 的地址吗?就像我们返回一个数组时一样,或者返回的值是复制到 X 中的完整向量 C。在什么情况下应该动态分配容器?如果通过引用或通过值传递向量,最终的 X 会有什么不同吗?

c++ containers return-value pass-by-reference pass-by-value

2
推荐指数
1
解决办法
585
查看次数

返回原始值的快速排序实现

所以我试图实现快速排序算法,但事实上,因为我在一个调试器中跟随代码,所有元素都按排序顺序,但是,这个算法在元素排序后的三个递归调用中取消了所有内容.请告诉我什么是错误的

#include <iostream>
#include <vector>

using namespace std;

void swap(int& a, int& b)
{
    int temp = a;
    a = b;
    b = temp;
}

void quicksort(vector<int> A, int start, int end)
{
    if (start < end)
    {
        int pivot = A[start];
        int i, j = start;
        for (i = start + 1;i < end;i++)
        {
            if (pivot>A[i])
            {
                swap(A[i], A[j + 1]);
                j++;
            }
        }
        swap(A[start], A[j]);
        quicksort(A, start, j - 1);
        quicksort(A, j + 1, end);
    }
} …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm quicksort

1
推荐指数
1
解决办法
51
查看次数