C++ 返回垃圾的简单重新排序函数

C++ 返回垃圾的简单重新排序函数,c++,C++,作为我正在编写的一个更大程序的一部分,我正在对一个向量重新排序。功能是: void reorderVector(vector<char> &sourceVector){ int vectorSize = sourceVector.size(); vector<char> vectorOrdered; int i; for ( i = 0; i < vectorSize; i++){ vectorOrd

作为我正在编写的一个更大程序的一部分,我正在对一个向量重新排序。功能是:

void reorderVector(vector<char> &sourceVector){
    int vectorSize = sourceVector.size();
    vector<char> vectorOrdered;

    int i;
    for ( i = 0; i < vectorSize; i++){
            vectorOrdered.push_back(sourceVector.back());
            sourceVector.pop_back();
    }
    sourceVector = vectorOrdered;
}
void重新排序向量(向量和源向量){
int vectorSize=sourceVector.size();
矢量有序;
int i;
对于(i=0;i
我用来测试它的代码是:

int main(){
    vector<char> testVector[10];
    int i;

    for( i=0; i< 10; i++){
        testVector[i] = 100-i;
    }

    reorderVector(testVector);
    int j=0;
    while( j<10){
        cout<< testVector[i]<< endl;
    }

    return 0;
}
intmain(){
向量testVector[10];
int i;
对于(i=0;i<10;i++){
测试向量[i]=100-i;
}
重组向量(testVector);
int j=0;
while(j
您可能需要以下内容:

vector<char> testVector(10);
向量testVector(10);
代码中的另一个错误是存在死循环(永远循环):

intj=0;
而(j错误表示

 no match for ‘operator=’ in ‘testVector[i] = (100 - i)’
检查该行。您可以看到您将向量声明为向量数组:

vector<char> testVector[10];

注意,我使用圆括号定义构造函数参数,而平方括号用于数组。

看起来,在C++和编程中,我仍然有很多东西要学习。要清楚,如果我想访问第i个元素,我将键入<代码>测试向量(i)
,对吗?@FSB No,请检查std::vector的文档。要访问元素,您可以使用
[]
运算符,即testVector[i]。
vector<char> testVector(10);
int j=0;
while( j<10){
cout<< testVector[i]<< endl; 
  //^^^you have to increment j here in order to exit the loop 
  //^^^and why testVector[i]???
}
 no match for ‘operator=’ in ‘testVector[i] = (100 - i)’
vector<char> testVector[10];
vector<char> testVector(10);