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);