C++ 为什么当我的向量中的数字被复制到我的文件中时,它们没有反转?

C++ 为什么当我的向量中的数字被复制到我的文件中时,它们没有反转?,c++,C++,程序运行得很好,向量的数字最终出现在我的文件中,但它们没有反转 #include <iostream> #include <vector> #include <fstream> using namespace std; void reversevector(vector<double> &vd, int i, int j) { if(i>=j) { double temp = vd[i]; v

程序运行得很好,向量的数字最终出现在我的文件中,但它们没有反转

#include <iostream>
#include <vector>
#include <fstream>
using namespace std;

void reversevector(vector<double> &vd, int i, int j)
{
    if(i>=j) {
        double temp = vd[i];
        vd[i]=vd[j];
        vd[j]=temp;
        i++;
        j--;
    }
}
int main() {
    double n = 0;
    vector<double> vd;
    while (cin>>n) {
        vd.push_back(n);
    }

    reversevector(vd,0,vd.size()-1);

    ofstream ofs("reversedlist.txt");

    if(!ofs) {
        cout<<"error";
        exit(1);
    }

    for(int i=0; i<vd.size(); i++){
        ofs<<vd[i];
    }

    ofs.close();
}
#包括
#包括
#包括
使用名称空间std;
无效反转器(向量与虚拟磁盘、内部i、内部j)
{
如果(i>=j){
双温=vd[i];
vd[i]=vd[j];
vd[j]=温度;
i++;
j--;
}
}
int main(){
双n=0;
向量向量机;
while(cin>>n){
vd.推回(n);
}
反转器(vd,0,vd.size()-1);
ofs流(“reversedlist.txt”);
如果(!ofs){
不能

if (i >= j)
reversevector
功能中

while (i < j)
while(i
否则,您可以有条件地交换第一个和最后一个数字,然后立即退出。

if (i >= j)
reversevector
功能中

while (i < j)
while(i

否则,您将有条件地交换第一个和最后一个数字,然后立即退出。

您的
reverseevector
函数最多交换两个元素。您必须交换两个以上的元素才能反转向量。由于
if
中的测试条件无论如何都将为false,因此实际上它不会做任何事情。

您的
reversevector
函数最多交换两个元素。您必须交换两个以上的元素才能反转向量。由于
if
中的测试条件无论如何都将为false,因此它实际上不会做任何事情。

reverse vector中没有循环。它将运行一次,然后退出。您需要在数组上循环并重新执行e使其工作。

反向向量中没有循环。它将运行一次,然后退出。您需要在数组上循环并替换以使其工作。

您使用调用方法,例如:

reversevector( {1,2,3,4,5} , 0, 4 )
然后进入

if (0>=4) {
  ...
 }
然后退出该方法-什么也不发生


当然,如果您调试了

调用方法,您可以自己发现这个问题,比如:

reversevector( {1,2,3,4,5} , 0, 4 )
然后进入

if (0>=4) {
  ...
 }
然后退出该方法-什么也不发生


当然,如果您调试了

的话,您自己也可以发现这一点,只需考虑
std::reverse\u copy(std::begin(vd)、std::end(vd)、std::ostream\u迭代器(ofs))“”,除此之外,还有“代码> STD::反转< /代码>,所以不需要做你自己的。有趣的单词选择。如果你的程序不做你想做的事,我几乎不认为“运行完美”。)只考虑<代码> STD::ReSysRead(STD::开始(VD),STD::结束(VD),STD::OrthuryType(OFS))。除此之外,还有<代码> STD::反转< /代码>,所以不需要做你自己的。有趣的单词选择。如果你的程序不做你想做的事,我几乎不认为“运行完美”。