我只是学习c ++,而且我遇到了第一个问题。我正在使用visual studio和c ++ 11。这是代码:
render(){
return({yourCondition ? <yourComponent /> : null});
}
正如您所知,它要求您输入5个数字并将其相加。当我使用cout时,它会正确输出向量的内容。一旦我添加了排序行,我就遇到了问题。它正确地对向量进行排序,除非它用第一个值替换最低值,即使它以正确的顺序放置它。例如:
cout << "Enter 5 numbers to add." << endl;
for (int i(0); i < 5; ++i) {
int x;
cin >> x;
intList.push_back(x);
}
for (int item:intList) {
sort(begin(intList), end(intList));
cout << item << " ";
total += item;
}
cout << endl;
cout << "Your total is " << total << endl;
另外一个问题是使用
Enter 5 numbers to add.
87 95 61 43 2
87 43 61 87 95
Your total is 373
迭代向量的最佳/有效方法。
我确信这是一个明显的解决方案。感谢。
答案 0 :(得分:3)
您需要重新定位调用以进行排序,使其超出for循环。
目前你的排序使迭代器无效(在第一次调用之后,因为它是一个无操作),这会导致你观察到的效果。
(我相信你知道你不需要对矢量进行排序以计算总数。)