码迷,mamicode.com
首页 > 编程语言 > 详细

32,初探c++标准库

时间:2020-07-26 02:01:24      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:error   技术   数据   main   需要   tac   显示器   ack   编程   

1. 有趣的重载

(1)操作符<<原义是按位左移重载“<<”可将变量或常量左移到对象中

 技术图片

 

重载左移操作符(仿cout类)

 1 #include<stdio.h>
 2 
 3 const char endl = \n;                  //将换行定义为一个常量
 4 
 5 class Console                           //Console表示命令行对象
 6 {
 7 public:
 8     Console& operator << (int i)                //赋值重载函数,返回值变为Console&引用 
 9     {
10         printf("%d\n", i);
11         return *this;                            //当前对象自身返回,保证连续传送值
12     }
13 
14     Console& operator << (char c)                //重载函数
15     {
16         printf("%c\n", c);
17         return *this;
18     }
19     Console& operator << (const char* s)           //重载函数  
20     {
21         printf("%s\n", s);
22         return *this;
23     }
24     Console& operator << (double d)                //重载函数
25     {
26         printf("%f\n", d);
27         return *this;
28     }
29 
30 };
31 
32 Console cout;
33 
34 int main()
35 {
36     ////cout.operator<<(1);
37     //cout << 1;                   //将1的整数左移到cout
38     //cout << ‘\n‘;                //换行
39 //    cout << 1 << ‘\n‘;             //error,重载函数返回值是void不能连续左移,将返回值用    Console&实现
40     
41     cout << 1 <<endl;              //避免输入字符\n
42     cout << "LOVE.you" << endl;
43 
44     double a = 0.1;
45     double b = 0.2;
46     cout << a + b << endl;                            
47 
48 
49     return 0;
50 }

2. C++标准库

(1)C++标准库

  • C++标准库并不是C++语言的一部分

  • C++标准库是由类库和函数库组成的集合,std

  • C++标准库定义的类和对象都位于std命名空间

  • C++标准库头文件不带.h后缀

  • C++标准库涵盖了C库功能

 

(2)C++编译环境的组成

          技术图片 

C语言兼容库:头文件带.h,是C++编译器提供商为推广自己的产品,而提供的C兼容库(不是C++标准库提供的)。

C++标准库:如stringcstdio(注意,不带.h)是C++标准库提供的。使用时要用using namespace std找开命名空间。

编译器扩展库:编译器自己扩展的

 

(3)C++标准库预定义的常用数据结构

  ①<bitset>、<set>、<deque>、<stack>、<list>、<vector>、<queue>、<map>

  ②<cstdio>、<cstring>、<cstdlib>、<cmath>——(C++标准库提供的C兼容库!

【编程实验】C++标准库中的C库兼容(如cstdio)

 1   //不是c语言标准库也不是c++标准库,是c++厂商为了推广自己的产品提高的c兼容库
 2 /*#include<stdio.h>
 3 #include<string.h>
 4 #include<stdlib.h>
 5 #include<math.h> */   
 6 
 7 
 8 //C++标准库提供的C兼容库
 9 #include<cstdio>
10 #include<cstring>
11 #include<cstdlib>
12 #include<cmath>             
13 
14 using  namespace std;    //使用标准库要打开,namespace std命名空间
15 
16 int main()
17 {
18     //以下的代码是使用C++标准库提供的C兼容库写的,
19 
20     //从形式上看,与C代码写的完全一样,这就是C++
21 
22     //为C提供了很好的支持的例子!
23 
24     printf("holle world!\n");
25 
26     char* p = (char*)malloc(16);  
27 
28     //strcpy(p, "sjdewhfj");
29 
30     double a = 3;
31     double b = 4;
32     double c = sqrt(a * a + b * b);
33 
34     printf("c=%f\n", c);
35 
36     free(p);             
37 
38     return 0;
39 }

4. C++输入输出

  

 1 #include<iostream>
 2 #include<cmath>
 3 
 4 //基于c++标准库实现,  不使用厂商提供的c语言兼容库
 5 
 6 using  namespace std;
 7 
 8 int main()
 9 {
10     //printf("hello world!");
11     cout << "hello world!" << endl;            //cout为全局对象------输出(重载左移操作符)
12                                                //endl---换行
13 
14 
15     double a = 0;
16     double b = 0;
17 
18     cout << "input a :";  
19     cin >> a;                    //cin为全局对象------输入(重载右移操作符)   键盘上的输入传送带a
20 
21     cout << "input b :";
22     cin >> b;
23 
24     double c = sqrt(a * a + b * b);   
25     cout << "c=" << c << endl;       //将字符串  "c=" 和c的结果输出到cout对象上,也就是传送到显示器上,显示器对应的是命令行
26 
27 
28 
29 
30     return 0;
31 }

5. 小结

(1)C++标准库是由类库和函数库组成的集合---------使用c++标准库里的类和函数只需要包含头文件(不带.h),里面包含子库实现了c语言的全部功能

(2)C++标准库包含经典算法数据结构实现

(3)C++标准库涵盖了C库的功能(子库实现)

(4)C++标准库位于std命名空间中

 

32,初探c++标准库

标签:error   技术   数据   main   需要   tac   显示器   ack   编程   

原文地址:https://www.cnblogs.com/liuyueyue/p/13378402.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!