C ++中的布尔数据类型
在本文中,我们将介绍C ++中的Bool数据类型。
布尔数据类型是相当一段时间以来在C ++中存在的一种。
这为程序员使用布尔值而不是int来管理和编写条件语句提供了一种便捷的数据类型。
但是,请记住,bool和int本质上是相同的,只是有一些细微的差别。
让我们来看一些示例,看看如何使用此数据类型!
C ++中的bool数据类型
我们可以将此数据类型的变量仅分配给两个值:
- true->等于整数值1
- false->等于整数值0
以下方式显示了变量的分配方式。
bool var_1 = true; //Set var_1 to true bool var_2 = false; //Set var_2 to false
有趣的是,如果您尝试使用std :: cout
打印这些变量,则只会得到它们的整数值。
#include <iostream> int main() { bool var_1 = true; bool var_2 = false; std::cout << "var_1: " << var_1 << std::endl; std::cout << "var_2: " << var_2 << std::endl; return 0; }
输出
var_1: 1 var_2: 0
在C ++中使用布尔数据类型
" bool"数据类型最常见的用途是用于条件语句。
我们可以将条件与布尔值进行比较,并返回它们。
下面的代码片段显示了条件值为" bool"的比较。
#include <iostream> int main() { int x = 10, y = 20; if ((x > y) == true) //The condition evaluates to true std::cout << "x > y\n"; else //The condition evaluates to false std::cout << "x <= y\n"; return 0; }
输出
x <= y
我们也可以返回条件语句,因为它们也是'bool'。
我们可以使用它直接在函数中返回它们
例如,如果声明一个布尔函数以检查第一个参数是否大于第二个参数,则可以直接返回条件语句(x> y)。
bool check_greater(int x, int y) { return (x > y); }
如果x> y则返回true,否则返回false。
转换为int/float/double
由于true的默认值为1(或者1.00),因此我们也可以通过强制类型转换将它们转换为int
/float
/double
。
有时,即使是编译器也将bool隐式转换为int/float,反之亦然。
因此,这现在非常方便!
以下表达式在C ++中有效:
int x = 10; float y = 2.5; float z = x + y + true + false;
其中由于所有类型都可以转换为左侧类型" float",因此" z"的值将分配为:10 + 2.5 + 1 + 0 = 13.5
如果LHS的数据类型为`bool',我们也可以做相反的操作。
int x = 10; float y = 2.5; bool z = x + y + true + false;
其中由于(bool)10 +(bool)2.5 + true + false =true + true + true + false
=true
,因此将为z赋予true。
使用布尔作为模板参数
由于bool
是有效的数据类型,我们也可以将其作为模板参数传递。
例如,我们可以将其作为参数传递给std :: vector <T>
,以构造bool
s的向量!
#include <iostream> #include <vector> int main() { std::vector<bool> vec = {true, false, true, false}; for (auto i: vec) std::cout << i << std::endl; return 0; }
输出
1 0 1 0