我正在尋找重載sqrt函數,如下所示,以便它可以將字符串作爲參數並返回一個字符串。爲字符串參數重載sqrt函數
std::string sqrt(std::string b){
//do something
}
這是允許在C + +?如果是這樣,我的語法不正確?
我正在尋找重載sqrt函數,如下所示,以便它可以將字符串作爲參數並返回一個字符串。爲字符串參數重載sqrt函數
std::string sqrt(std::string b){
//do something
}
這是允許在C + +?如果是這樣,我的語法不正確?
這很好,只要你的函數能正確地解釋字符串。例如:
#include <iostream>
#include <string>
#include <cmath>
std::string sqrt(std::string b)
{
return std::to_string(std::sqrt(std::stoi(b)));
}
int main()
{
std::string input = "625";
std::string output = sqrt(input);
std::cout << output;
}
的語法是正確的,但您可能希望通過const
引用傳遞繩子,讓你不創建一個副本,以防您的字符串是左值(右值對,一如果使用C++ 11,將會發生移動)。
如果您知道該字符串表示double
,那麼你可以使用:
#include <string>
#include <cmath>
std::string sqrt(const std::string& b)
{
return std::to_string(std::sqrt(std::stod(b)));
}
同樣,如果你知道該字符串表示int
使用std::stoi
代替。
但是它是什麼,例如,我正在尋找做一些完全無關的平方根,只是調用函數sqrt?即,接收一個字符串並返回字符串反轉。 – potatosoup
@potatosoup你可以在功能內做任何你想做的事情。上面的例子將字符串轉換爲整數,並取其平方根。當然,你可以做其他的事情,但是調用'sqrt'函數不會有太大意義,並且會讓其他可能會讀你代碼的人感到困惑。 – vsoftco
該函數應處理參數「香蕉」和「胡蘿蔔」的情況。沒有一個是方形的,但至少胡蘿蔔是根。 –