【发布时间】:2021-09-10 12:26:25
【问题描述】:
我尝试使用 C++ 中的向量来验证用户输入。我几乎搜索了一个可能的解决方案,但我找不到解决方案。
#include <iostream>
#include <cstdlib>
#include <vector>
using namespace std;
int main()
{
std::vector<int> selectFloor = {};
int maxfloor, currentfloor = 1, select, i, k, inputFloor;
cout << "How many floors do you want for your elevator? : ";
cin >> maxfloor;
cout << "----------This Elevator have " << maxfloor << " Floors---------";
cout << "\n";
while(true)
{
cout << "select how many floor to select : ";
cin >> select;
// Insert
for(i = 0; i < select; i++)
{
cout << "Select floor : ";
cin >> inputFloor;
selectFloor.push_back(inputFloor);
}
//This is my validation if the input already exist
if(selectFloor.begin(), selectFloor.end(), inputFloor)
{
cout << "Already selected" << endl;
selectFloor.pop_back(); // pop the last same input
// Display the input
for(k = 0; k < selectFloor.size(); k++)
std::cout << selectFloor.at(k) << ' ';
break;
}
} // end while
return 0;
}
这是我的示例输出。我进入了 4 层楼,但最后一个弹出窗口
select how many floor to select : 4
Select floor : 1
Select floor : 2
Select floor : 3
Select floor : 4
Already selected
1 2 3
如果没有相同的号码,我想要这个
select how many floor to select : 4
Select floor : 1
Select floor : 2
Select floor : 3
Select floor : 4
1 2 3 4
但是如果输入已经存在这个例子
select how many floor to select : 4
Select floor : 1
Select floor : 2
Select floor : 3
Select floor : 3
Already selected
1 2 3
【问题讨论】:
-
一定要用矢量吗?除非这是家庭作业,否则使用
unordered_set会更有意义。它确保其内容是独一无二的。 -
@MustafaOzturk 是的,因为我想熟悉矢量的实际作用。