矢量未返回主函数

时间:2017-10-19 11:05:16

标签: c++ vector

我正在进行一项练习,需要将一个int值向量输入到第二个函数中进行重新排列,这样它们就会以相反的顺序排列(所以如果我在1,2,3,4中输入结果输出会是4,3,2,1)

// Workshop3.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <string>
#include <vector>

int reverse(std::vector<int> a, std::vector<int> b)
{
int count = 0;
int end = a.size() - 1;

while (count < a.size())
{
    b.push_back(a[end]);
    count++;
    end--;
}

    return 1;
}

int main()
{

char blank;

//A simple int value for use in outputting the entire vector
int count = 0;

//Creates the initial vector
std::vector<int> vec{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

std::vector<int> rev;

std::cout << "Initial Vector \n";

//Outputs the vector onto the console
while (count < vec.size())
{
    std::cout << vec[count] << " ";

    count++;
}

std::cout << "\n";
std::cout << "Reversed";
std::cout << "\n";

reverse(vec, rev);

//Outputs the reversed vector
count = 0;

while (count < rev.size())
{
    std::cout << rev[count] << " ";

    count++;
}

std::cin >> blank;

return 0;
}

当向量传递给 reverse 函数时,信息在反转完成后不会返回到main函数。运行时, reverse 函数按预期工作,b向量按正确的顺序填充正确的值,但此信息不会传递回 rev 向量主要功能,正如我所料。

我很确定我刚才没有添加到实际执行此操作所需的代码中。任何人都可以解释我做错了什么。

如果需要进一步说明,请告诉我,我会尽可能详细说明。

0 个答案:

没有答案