我需要在 C 中有一個函式,只要輸入是唯一的,它就會從字串向量中獲取一個元素。
例如,我的向量包含{"DELETE", "HELP", "GO FORWARD", "GO BACKWARDS"}.
如果我的輸入是"H",函式應該輸出"HELP"如果輸入是"H 55",它應該忽略 55 并且仍然輸出"HELP"。
但是,當我"HELLO"向向量添加新元素時,它應該回傳"NOT UNIQUE".
我已經嘗試了很多東西,但我并沒有真正取得任何進展。
我認為二維向量將是一個可能的解決方案,但我無法使其作業:
["DELETE", "D"]
["DELETE", "DE"]
["DELETE", "DEL"]
["DELETE", "DELE"]
["DELETE", "DELET"]
["DELETE", "DELETE"]
["HELP", "HELP"]
["HELLO", "HELL"]
["HELLO", "HELLO"]
...
uj5u.com熱心網友回復:
制作一個在唯一時自動檢測的功能
一種可能的方法如下所示:
#include <iostream>
#include <vector>
#include <string>
std::string checkUnique(const std::string& searchString, const std::vector<std::string>& inputVector)
{
int count = 0;
std::string foundString;
for(const std::string &element: inputVector)
{
if(element.at(0) == searchString.at(0))
{
foundString = element;
count; //increment count
}
}
if(count == 0)
{
return "NOT FOUND";
}
else if(count == 1)
{
return foundString;
}
else
{
return "NOT UNIQUE";
}
}
int main()
{
std::vector<std::string> inputVector{"DELETE", "HELP", "GO FORWARD", "GO BACKWARDS"};
std::string searchString = "H";
//call the function for different cases
std::cout << checkUnique(searchString, inputVector) <<std::endl;;//prints HELP
std::cout << checkUnique("H", inputVector) << std::endl; //prints HELP
std::cout << checkUnique("H 55", inputVector) << std::endl; //prints HELP
//add "HELLO" into the vector
inputVector.push_back("HELLO");
std::cout << checkUnique("H", inputVector) << std::endl; //prints NOT UNIQUE
std::cout << checkUnique("H 55", inputVector) << std::endl; //prints NOT UNIQUE
return 0;
}
程式的輸出可以在這里看到。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/382086.html
上一篇:在布局中限制QGraphicsView小部件的最小大小是什么?
下一篇:QTC 中不完整型別錯誤的分配
