广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++超详细讲解标准库
  • 137
分享到

C++超详细讲解标准库

2024-04-02 19:04:59 137人浏览 八月长安
摘要

目录一、有趣的重载二、c++ 标准库三、小结一、有趣的重载 操作符 << 的原生意义是按位左移,例:1 <<2; 其意义是将整数 1 按位左移2位,即:000

一、有趣的重载

操作符 << 的原生意义是按位左移,例:1 <<2; 其意义是将整数 1 按位左移2位,即:0000 0001 → 0000 0100

现在来尝试一下重载左移操作符,将变量或常量左移到一个对象中!

#include <stdio.h>
const char endl = '\n';
class Console
{
public:
    Console& operator << (int i)
    {
        printf("%d", i);
        return *this;
    }
    Console& operator << (char c)
    {
        printf("%c", c);
        return *this;
    }  
    Console& operator << (const char* s)
    {
        printf("%s", s);
        return *this;
    }  
    Console& operator << (double d)
    {
        printf("%f", d);
        return *this;
    }         
};
Console cout;
int main()
{
    cout << 1 << endl;
    cout << "AutumnZe" << endl;
    double a = 0.1;
    double b = 0.2;
    cout << a + b << endl;
    return 0;
}

输出结果如下:

二、C++ 标准库

  • C++ 标准库并不是C++语言的一部分
  • C++ 标准库是由类库和函数库组成的集合
  • C++ 标准库中定义的类和对象都位于 std 命名空间中
  • C++ 标准库的头文件都不带 .h 后缀
  • C++ 标准库涵盖了 C 库的功能
  • C++ 编译环境的组成

C++ 标准库预定义了多数常用的数据结构

下面看一个 C++ 标准库中的 C 库兼容:

#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
using namespace std;
int main()
{
    printf("Hello World\n");
    char *p = (char*)malloc(16);
    strcpy(p, "AutumnZe");
    printf("%s\n", p);
    double a = 3;
    double b = 4;
    double c = sqrt(a * a + b * b);
    printf("c = %f\n", c);
    free(p);
    return 0;
}

输出结果如下:

下面来看一下 C++ 中的输入输出:

#include <iOStream>
#include <cmath>
using namespace std;
int main()
{
    cout << "Hello World" << endl;
    double a = 0;
    double b = 0;
    cout << "Input a:";
    cin >> a;
    cout << "Input b:";
    cin >> b;
    double c = sqrt(a * a + b * b);
    cout << "c = " << c << endl;
    return 0;
}

输出结果如下:

三、小结

  • C++ 标准库是由类库和函数库组成的集合
  • C++ 标准库包含经典算法和数据结构的实现
  • C++ 标准库涵盖了 C 库的功能
  • C++ 标准库位于 std 命名空间中

到此这篇关于C++超详细讲解标准库的文章就介绍到这了,更多相关C++标准库内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C++超详细讲解标准库

本文链接: https://www.lsjlt.com/news/150318.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++超详细讲解标准库
    目录一、有趣的重载二、C++ 标准库三、小结一、有趣的重载 操作符 << 的原生意义是按位左移,例:1 <<2; 其意义是将整数 1 按位左移2位,即:000...
    99+
    2022-11-13
  • C++BoostUtility超详细讲解
    目录一、说明二、Boost.Utility库示例和代码一、说明 Boost.Utility 库是杂项、有用的类和函数的集合,它们太小而无法在独立库中维护。虽然实用程序很小并且可以快速...
    99+
    2022-12-08
    C++ Boost Utility C++ Utility库
  • C++BoostUuid超详细讲解
    目录一、说明二、Boost.Uuid库示例和代码一、说明 Boost.Uuid 为 UUID 提供生成器。 UUID 是不依赖于中央协调实例的通用唯一标识符。例如,没有数据库存储所有...
    99+
    2022-12-08
    C++ Boost Uuid C++ Uuid标识符
  • C语言超详细讲解库函数
    目录1 返回整数的getchar函数2 更新顺序文件3 缓冲输出与内存分配4 库函数练习1 返回整数的getchar函数 代码: #include<stdio.h> ...
    99+
    2022-11-13
  • C++超详细讲解泛型
    目录1.了解泛型编程2.函数模板2.1简单示例2.2多个模板参数2.3模板实例化2.4模板和普通函数同时存在2.5函数模板不支持定义和声明分离3.类模板3.1简单示例3.2成员函数声...
    99+
    2022-11-13
  • C++ Boost Assign超详细讲解
    目录说明Exercise说明 Boost.Assign Boost.Assign 库提供了帮助函数来初始化容器或向容器添加元素。如果需要将许多元素存储在一个容器中,这些函数尤其有用。...
    99+
    2022-12-09
    C++ Boost Assign C++ Assign库
  • C++BoostPropertyTree示例超详细讲解
    目录一、提要二、应用示例练习一、提要 借助类 boost::property_tree::ptree,Boost.PropertyTree 提供了一个树结构来存储键/值对。树形结构意...
    99+
    2022-11-13
    C++ Boost PropertyTree C++ Boost PropertyTree示例
  • C++BoostVariant示例超详细讲解
    目录一、提要二、示例一、提要         Boost.Variant 提供了一个类似于 unio&...
    99+
    2022-11-13
    C++ Boost Variant C++ Boost Variant示例
  • C++BoostOptional示例超详细讲解
    目录一、概述二、Boost.Optional一、概述 数据结构类似于容器,因为它们可以存储一个或多个元素。但是,它们与容器不同,因为它们不支持容器通常支持的操作。例如,使用本部分介绍...
    99+
    2022-11-13
    C++ Boost Optional C++ Boost Optional示例
  • C++超详细讲解稀疏矩阵
    目录稀疏矩阵矩阵与稀疏矩阵的定义稀疏矩阵的转置详细思路思路一思路二稀疏矩阵的乘法详细思路稀疏矩阵 矩阵与稀疏矩阵的定义 Q:什么是矩阵 A:数学上,一个矩阵由 m 行 n 列的元素组...
    99+
    2022-11-13
  • C++超详细讲解析构函数
    目录特性析构函数处理自定义类型编译器生成的默认析构函数特性 析构函数是特殊的成员函数 特征如下: 析构函数名是~类名;无参数无返回值;一个类有且只有一个析构函数;对象声明周期结束,编...
    99+
    2022-11-13
  • C++超详细讲解构造函数
    目录类的6个默认成员函数构造函数特性编译器生成的默认构造函数成员变量的命名风格类的6个默认成员函数 如果我们写了一个类,这个类我们只写了成员变量没有定义成员函数,那么这个类中就没有函...
    99+
    2022-11-13
  • C++超详细讲解智能指针
    目录一、内存泄漏-永恒的话题二、深度思考三、智能指针分析四、小结一、内存泄漏-永恒的话题 动态申请堆空间,用完后不归还C++ 语言中没有垃圾回收的机制指针无法控制所指堆空间的生命周期...
    99+
    2022-11-13
  • C++超详细讲解函数对象
    目录一、客户需求二、存在的问题三、解决方案四、函数对象五、小结一、客户需求 编写一个函数 函数可以获得斐波那契数列每项的值每调用一次返回一个值函数可根据需要重复使用 下面来看第一个...
    99+
    2022-11-13
  • C++超详细讲解字符串类
    目录一、历史遗留问题二、解决方案三、标准库中的字符串类四、字符串循环右移五、小结一、历史遗留问题 C 语言不支持真正意义上的字符串C 语言用字符数组和一组函数实现字符串操作C 语言不...
    99+
    2022-11-13
  • C++超详细讲解函数重载
    目录1 函数重载的定义2 构成函数重载的条件3 编译器调用重载函数的准则4 函数重载的注意事项4.1 避开重载带有指定默认值参数的函数4.2 注意函数重载遇上函数指针4.3 C++编...
    99+
    2022-11-13
  • C++的sstream标准库详细介绍
    C++的sstream标准库介绍 接下来我们继续看一下C++风格的串流控制 ,C++引入了ostringstream、istringstream、stringstream这三个类,要...
    99+
    2022-11-15
    sstream C++
  • C++Easylogging++日志库配置使用超详细讲解
    目录Easylogging++下载Easylogging++在VS中配置Easylogging++使用Easylogging++Easylogging++ Easylogging++...
    99+
    2022-11-13
    C++ Easylogging++ C++ 日志库Easylogging++
  • SpringCloudNetflixRibbon超详细讲解
    目录一、Ribbon简介1、什么是Ribbon2、Ribbon能干什么二、使用Ribbon1、客户端导入依赖2、application.yml配置3、Controller配置4、Co...
    99+
    2022-11-13
    SpringCloud Netflix Ribbon SpringCloud Ribbon
  • AndroidLayerDrawable超详细讲解
    目录1. 前言2. 实例1. 前言 Android LayerDrawble 包含一个Drawable数组,系统将会按照这些Drawable对象的数组顺序来绘制他们,索引最大的 Dr...
    99+
    2022-11-13
    Android LayerDrawable Android LayerDrawable原理
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作