C++ 中建立布林函式
Jinku Hu
2023年10月12日
本文將介紹如何在 C++ 中建立布林函式。
將字串大小比較作為布林函式實現
布林函式表示返回 bool
型別值的函式。布林函式的結構可以和其他函式一樣。在下面的例子中,我們實現了一個比較兩個字串大小的函式 isLessString
。如果第一個字串的長度小於第二個字串的長度,該函式返回 true
;否則,返回 false
。
注意,我們把比較表示式放在 return
關鍵字之後,以將結果值傳回撥用函式。
#include <algorithm>
#include <iostream>
#include <iterator>
#include <map>
using std::cout;
using std::endl;
using std::map;
using std::string;
bool isLessString(string &s1, string &s2) { return s1.size() < s2.size(); }
int main() {
string str1 = "This string shall be arbitrary";
string str2 = "Let this string be compared compared";
if (isLessString(str1, str2)) cout << "str1 is shorter than str2";
cout << endl;
return EXIT_SUCCESS;
}
輸出:
str1 is shorter than str2
實現布林函式,如果對映中存在具有特定鍵的元素,則返回該布林函式
以下例子實現了布林函式,用來查詢一個 std::map
容器中是否存在特定鍵的元素。由於本主題是關於函式返回型別 bool
,我們將利用 std::map
中內建的 find
方法,而不是自己實現搜尋例程。
find
方法接收一個引數-key
,並返回迭代器到相應的元素。如果沒有找到指定 key 的元素,則返回 end
(past-the-end)迭代器。
我們的 keyExistsInMap
函式接受 map
和 string
引數,並從給定的 map
中呼叫 find
方法。如果呼叫的返回值不等於 end
迭代器,true
將被傳回撥用者函式,否則返回 false
。
#include <algorithm>
#include <iostream>
#include <iterator>
#include <map>
using std::cout;
using std::endl;
using std::map;
using std::string;
bool keyExistsInMap(map<string, string>& m, const string& key) {
if (m.find(key) != m.end()) {
return true;
} else {
return false;
}
}
int main() {
map<string, string> veggy_map = {{
"a",
"Asparagus",
},
{
"b",
"Beetroot",
},
{
"b",
"Bedsetroot",
},
{
"g",
"Ginger",
},
{
"m",
"Melon",
},
{
"p",
"Pumpkin",
},
{
"s",
"Spinach",
}};
keyExistsInMap(veggy_map, "a") ? cout << "Key exists" << endl
: cout << "Key does not exist\n"
<< endl;
keyExistsInMap(veggy_map, "z") ? cout << "Key exists" << endl
: cout << "Key does not exist\n"
<< endl;
return EXIT_SUCCESS;
}
輸出:
Key exists
Key does not exist
作者: Jinku Hu