16.12 — std::vector<bool>
在课程中,我们讨论了 std::bitset 如何能够将8个布尔值压缩成一个字节。这些位可以通过 std::bitset 的成员函数进行修改。std::vector 有一个有趣的技巧。std::vector<bool> 有一个特殊的实现,可以更节省空间……
在课程中,我们讨论了 std::bitset 如何能够将8个布尔值压缩成一个字节。这些位可以通过 std::bitset 的成员函数进行修改。std::vector 有一个有趣的技巧。std::vector<bool> 有一个特殊的实现,可以更节省空间……
考虑这样一种情况:您正在编写一个程序,用户将输入一个值列表(例如一堆考试分数)。在这种情况下,他们将输入的值的数量在编译时是未知的,并且每次运行时都可能不同……
数组最大的文档问题之一是整数索引没有向程序员提供关于索引含义的任何信息。考虑一个保存5个考试分数的数组: #include <vector> int main() { std::vector testScores { 78, 94, 66, 77, 14 }; testScores[2] = 76; …
在课程中,我们注意到我们通常倾向于使用有符号值来保存数量,因为无符号值可能会以令人惊讶的方式表现。然而,在课程中,我们讨论了 std::vector(和其他容器类)如何使用无符号整型 std::size_t 来表示长度和索引。这可能导致问题……
在前一课中,我们介绍了 operator[],它可用于对数组进行下标操作以访问元素。在本课中,我们将探讨访问数组元素的其他方法,以及获取容器类长度(元素数量)的几种不同方法……
std::vector 类型的对象可以像任何其他对象一样传递给函数。这意味着如果我们将 std::vector 按值传递,会进行昂贵的复制。因此,我们通常通过 (const) 引用传递 std::vector 以避免此类复制。对于 std::vector,元素类型是……
可变扩展性挑战 考虑这样一个场景:我们想记录30名学生的考试分数并计算班级平均分。为此,我们需要30个变量。我们可以这样定义它们: // 分配30个整数变量(每个变量名称不同) int …
章节回顾 在每个(非静态)成员函数内部,关键字是一个 const 指针,它保存当前隐式对象的地址。我们可以让函数通过引用返回 *this,以实现链式调用,即可以在单个表达式中对同一对象调用多个成员函数。……
友元类 友元类是可以访问另一个类的私有和保护成员的类。示例如下: #include <iostream> class Storage { private: int m_nValue {}; double m_dValue {}; public: Storage(int nValue, double dValue) : m_nValue { nValue }, m_dValue { dValue } { …
在课程中,我们回顾了函数模板: template <typename T> // 这是模板参数声明 T max(T x, T y) // 这是 max<T> 的函数模板定义 { return (x < y) ? y : x; } 使用函数模板,我们可以……