`

C++----bool

 
阅读更多
1.操作子boolalpha通知流将bool值解析为单词(true或false),代码如下:
#include <ios>
#include <iostream>
#include <ostream>

int main()
{
  std::cout << "true=" << true << '\n';
  std::cout << "false=" << false << '\n';
  std::cout << std::boolalpha;
  std::cout << "true=" << true << '\n';
  std::cout << "false=" << false << '\n';
}
,结果为:
true=1
false=0
true=true
false=false





2.可以将许多不是bool类型的值转换为bool类型,所有的字符串(包括空串)都是true;字符'\0'转换为false,所有其它字符都转换为true;如果流为错误状态,结果为false。
#include <ios>
#include <iostream>
#include <ostream>

int main()
{
  bool b;
  std::cout << std::boolalpha;
  b = false;                   std::cout << b << ' ';
  b = true;                    std::cout << b << ' ';
  b = false;                   std::cout << b << ' ';
  b = true;                    std::cout << b << ' ';
  b = 42;                      std::cout << b << ' ';
  b = 3.1415926535897;         std::cout << b << ' ';
  b = 0;                       std::cout << b << ' ';
  b = -0.0;                    std::cout << b << ' ';
  b = -1;                      std::cout << b << ' ';
  b = "1";                     std::cout << b << ' ';
  b = "0";                     std::cout << b << ' ';
  b = "false";                 std::cout << b << ' ';
  b = "";                      std::cout << b << ' ';
  b = '0';                     std::cout << b << ' ';
  b = '\0';                    std::cout << b << ' ';
  b = std::cout;               std::cout << b << ' ';
  b = std::cin;                std::cout << b << ' ';
  std::cout << '\n';
}
,结果为:
false true false true true true false false true true true true true true false true true





3.比较两个vector,从两个向量的第一个元素开始比较,如果一个元素小于另一个元素,那么该元素所在的vector小于另一个vector。如果一个短向量是另一个长向量的前缀,那么微不短向量小于长向量。如下:
#include <iostream>
#include <ostream>
#include <vector>

int main()
{
   std::vector<int> a, b;
   a.push_back(10);
   a.push_back(20);
   a.push_back(30);
   b.push_back(10);
   b.push_back(20);
   b.push_back(30);
   if (a != b) std::cout << "wrong: a != b\n";
   if (a < b)  std::cout << "wrong: a < b\n";
   if (a > b)  std::cout << "wrong: a > b\n";
   if (a == b) std::cout << "okay: a == b\n";
   if (a >= b) std::cout << "okay: a >= b\n";
   if (a <= b) std::cout << "okay: a <= b\n";

   a.push_back(40);
   if (a != b) std::cout << "okay: a != b\n";
   if (a < b)  std::cout << "wrong: a < b\n";
   if (a > b)  std::cout << "okay: a > b\n";
   if (a == b) std::cout << "wrong: a == b\n";
   if (a >= b) std::cout << "okay: a >= b\n";
   if (a <= b) std::cout << "wrong: a <= b\n";

   b.push_back(42);
   if (a != b) std::cout << "okay: a != b\n";
   if (a < b)  std::cout << "okay: a < b\n";
   if (a > b)  std::cout << "wrong: a > b\n";
   if (a == b) std::cout << "wrong: a == b\n";
   if (a >= b) std::cout << "wrong: a >= b\n";
   if (a <= b) std::cout << "okay: a <= b\n";
}
,结果为:
okay: a == b
okay: a >= b
okay: a <= b
okay: a != b
okay: a > b
okay: a >= b
okay: a != b
okay: a < b
okay: a <= b





4.字符串的比较规则如下:
#include <iostream>
#include <ostream>
#include <string>

int main()
{
   std::string a("abc"), b("abc");
   if (a != b) std::cout << "wrong: abc != abc\n";
   if (a < b)  std::cout << "wrong: abc < abc\n";
   if (a > b)  std::cout << "wrong: abc > abc\n";
   if (a == b) std::cout << "okay: abc == abc\n";
   if (a >= b) std::cout << "okay: abc >= abc\n";
   if (a <= b) std::cout << "okay: abc <= abc\n";

   a.push_back('d');
   if (a != b) std::cout << "okay: abcd != abc\n";
   if (a < b)  std::cout << "wrong: abcd < abc\n";
   if (a > b)  std::cout << "okay: abcd > abc\n";
   if (a == b) std::cout << "wrong: abcd == abc\n";
   if (a >= b) std::cout << "okay: abcd >= abc\n";
   if (a <= b) std::cout << "wrong: abcd <= abc\n";

   b.push_back('e');
   if (a != b) std::cout << "okay: abcd != abce\n";
   if (a < b)  std::cout << "okay: abcd < abce\n";
   if (a > b)  std::cout << "wrong: abcd > abce\n";
   if (a == b) std::cout << "wrong: abcd == abce\n";
   if (a >= b) std::cout << "wrong: abcd >= abce\n";
   if (a <= b) std::cout << "okay: abcd <= abce\n";
}
,结果为:
okay: abc == abc
okay: abc >= abc
okay: abc <= abc
okay: abcd != abc
okay: abcd > abc
okay: abcd >= abc
okay: abcd != abce
okay: abcd < abce
okay: abcd <= abce
分享到:
评论

相关推荐

    C++-2320-1-2

    1. **基础语法**:包括变量声明、数据类型(如int、float、char、bool)、运算符(算术、比较、逻辑等)、流程控制(if-else、switch、for、while)等。 2. **函数**:C++中的函数用于组织代码,实现特定功能。可以...

    C++-公共基础习题和考点

    C++提供了基本的数据类型,如整型(int)、浮点型(float和double)、字符型(char)以及布尔型(bool)。变量是存储数据的容器,而常量则是不可改变的值。在声明变量时,需要指定其数据类型,并可以初始化其值。 ...

    C++-Record05.zip

    Record05.zip**"包含了与C++基础知识相关的三个源码文件,分别是"**dm04_实用性增强_register_类型检查.cpp**"、"**dm05_struct类型加强.cpp**"和"**dm06_bool类型.cpp**",这些文件将帮助我们深入理解C++在实用性、...

    Thinking In C++ -2nd-Vol one

    2. **基本语法与数据类型**:C++中的基本数据类型包括整型(int、short、long、long long)、浮点型(float、double)、字符型(char)以及布尔型(bool)。此外,还有自定义数据类型,如结构体(struct)和联合...

    C++-MFC快速超简单入门

    ### C++-MFC快速超简单入门知识点梳理 #### 一、C++与MFC的基础概念 - **C++基础知识**: - **类和对象**:MFC基于C++,因此了解C++中的类和对象是十分必要的。类是一种自定义的数据类型,可以包含数据成员(属性...

    c++-c++编程基础之leetcode题解第65题有效数字.zip

    bool isNumeric(const std::string &s) { int state = 0; // 初始化状态机状态 for (char c : s) { // 检查字符并更新状态 if (/* 符合某个状态的条件 */) { // 更新状态 } else { return false; // 遇到不...

    c++-c++编程基础之leetcode题解第79题单词搜索.zip

    在本压缩包中,主题聚焦于C++编程基础与LeetCode题解,特别是关于第79题“单词搜索”(Word Search)。LeetCode是一个在线平台,它提供了许多编程题目,帮助开发者提升算法技能和问题解决能力。让我们深入探讨C++...

    C++-简单程序设计.ppt

    C++中的基本数据类型包括整型(int)、浮点型(float)、字符型(char)和逻辑型(bool)。此外,还有空类型void,构造类型(如数组、结构体和联合体),以及指针类型。常量是不可改变的值,如整型常量、浮点数常量...

    c++-c++编程基础之leetcode题解第29题两数相除.zip

    bool isNegative = (dividend ) ^ (divisor ); long long absDividend = labs(dividend); long long absDivisor = labs(divisor); long long result = 0; while (absDividend &gt;= absDivisor) { long long ...

    c++-c++编程基础之leetcode题解第7题整数反转.zip

    bool is_negative = x ; x = is_negative ? -x : x; // 处理负数 while (x != 0) { int last_digit = x & 1; // 获取最低位 res = (res ) | last_digit; // 将res左移一位,然后与last_digit按位或 x &gt;&gt;= 1; /...

    c++-c++编程基础之leetcode题解第74题搜索二维矩阵.zip

    bool searchMatrix(vector&lt;vector&lt;int&gt;&gt;& matrix, int target) { if (matrix.empty() || matrix[0].empty()) return false; int rows = matrix.size(), cols = matrix[0].size(); int i = 0, j = cols - 1; ...

    C++-primer-(初学者可看笔记).docx

    C++中的基本类型包括整型(如int、short、long)、浮点型(如float、double)和布尔型(bool)。这里解释了不同整型和浮点型的取值范围和精度。字面值常量涵盖整型、浮点型、布尔型和字符串,以及它们的表示方式。...

    c++-c++编程基础之leetcode题解第23题合并K个升序链表.zip

    bool compare(ListNode* a, ListNode* b) { return a-&gt;val &lt; b-&gt;val; } ListNode* mergeKLists(vector*&gt;& lists) { priority_queue*, vector*&gt;, decltype(compare)&gt; pq(compare); for (ListNode* node : lists) ...

    GESP-C++-23年3月二级.pdf

    3. C++语言的特性,题目测试了考生对数据类型的了解,例如double类型的固定内存占用、bool类型占用1字节、int类型非无限取值范围以及char类型的取值种类。 4. 变量定义的规则,强调了变量名必须为合法标识符,且不...

    c++-c++编程基础之leetcode题解第5题最长回文子串.zip

    bool dp[n][n]; memset(dp, false, sizeof(dp)); int start = 0, maxLen = 1; for (int len = 2; len ; ++len) { for (int i = 0; i + len - 1 ; ++i) { int j = i + len - 1; if (len == 2) { dp[i][j] =...

    第1章:数据结构中的c-c++-知识点.pdf

    1. 基本数据类型:C/C++中定义了几种基本数据类型,包括整型(int)、浮点型(float和double)、布尔型(bool)以及字符型(char)。每种类型用于存储不同类型的数据,并且占用的内存大小不同。例如,int型通常占用4...

    蓝桥杯c++-蓝桥杯竞赛练习之基础练习题查找整数.zip

    bool findTarget(int arr[], int size, int target) { for (int i = 0; i ; i++) { if (arr[i] == target) { return true; } } return false; } ``` 3. 二分查找:对于有序数组,可以利用二分查找法。 ```...

    CCF-GESP 等级考试 2023年3月认证C++二级真题 附答案

    - bool类型的变量确实占用1字节内存。 - int类型的变量在不同的平台有不同的取值范围,但都不是无限的。 - char类型的变量在ASCII编码下有256种可能的值。 4. **C++变量与赋值**: - 变量定义后,可以使用赋值...

    bool-1.0.20.zip

    在"bool-1.0.20.zip"压缩包中,主要包含了一个名为"bool-master"的文件夹,这通常代表了项目的源代码仓库。 布尔表达式是基于布尔代数的概念,由布尔逻辑运算符(如AND、OR、NOT)和变量组合而成的表达式。这些...

Global site tag (gtag.js) - Google Analytics