string函数的用法
本篇教程为基础string用法
1、sizeof()与strlen()get()与getline()的区别
两者都能读取一行输入,知道到达换行符,但是getline()将丢弃换行符,而get()会将换行符保留在输入序列中
1long totals[500] = {0}; //只要显式地将第一个元素初始化为0,然后让编译器将其他元素都初始化为0;如果初始化为1)而不是{0},则第一个元素被设置为1.其他元素都被设置为
再确定存储字符串所需的最短数组时,别忘了将结尾的空字符串计算在内
1"S" = 'S' + '\0'
==sizeof==运算符指出整个数组的长度,但==strlen()==函数返回的是当前存储在数组中的字符串长度,而不是数组本身的长度。
1234const int Arsize = 15;char name2[Arsize] = "C++OWboy";//通过设置符号常量的地址即可对数组长度进行修改name2[3] = '\0' ...
C++“内联函数”
短小函数在C和C++中的不同实现
易混点😖:函数指针与指针函数
函数指针与指针函数
C++“多态”
C++多态你在第几层?
头文件(.h)
头文件(header files)定义C++/C程序的头文件以.h为后缀。使用时需要在.cpp文件中意#include<fileName.h>的方式引入。头文件作为一种包含功能函数、数据接口声明的载体文件,主要用于保存程序的声明,而定义文件用于保存程序的实现。
头文件中常包含的内容
函数原型
使用#define或const定义的符号常量
结构声明
将结构声明放在头文件中是可以的,因为它们不创建变量,而只是在源代码文件中声明结构变量时,告诉编译器如何创建该结构变量。
类声明
内联函数(inline)
Pointer And Const
一文搞懂指针常量与常量指针指针常量通俗点,你可以理解为const *,声明一个指针常量就是 const int* a,如果你容易混淆它只能修改指向的位置,可以试着按这种方式去理解。
常量指针const int* ptr或者int const* ptr,两者都表示常量指针。表示一个指针指向常量地址,使用就是可以修改指针指向的位置,但是不能修改指针指向位置的值。定义时可以不赋初值。
那么如何在以后的使用中更加准确地记住?倒着读!
上述两个定义方式可以理解为:
const int *ptr:a ptr is pointer to int const,一个变量ptr指向常整型
int const* ptr: a ptr is pointer to const int,含义同上
指针常量int * const ptr,即指针常量,表示一个常指针指向整型变量。使用就是可以修改指针指向位置的值,但是不能修改指针的指向。
同上,定义方式可以倒着理解:
int * const ptr:a ptr is a const pointer to int,ptr是一个指向整型变量的常指针
代码12345 ...
shared_ptr详细用法
shared_ptr#include<memory>
要确保用 new 动态分配的内存空间在程序的各条执行路径都能被释放是一件麻烦的事情。C++ 11 模板库的 头文件中定义的智能指针,即 shared _ptr 模板,就是用来部分解决这个问题的。
只要将 new 运算符返回的指针 p 交给一个 shared_ptr 对象“托管”,就不必担心在哪里写delete p语句——实际上根本不需要编写这条语句,托管 p 的 shared_ptr 对象在消亡时会自动执行delete p。而且,该 shared_ptr 对象能像指针 p —样使用,即假设托管 p 的 shared_ptr 对象叫作 ptr,那么 *ptr 就是 p 指向的对象。
通过 shared_ptr 的构造函数,可以让 shared_ptr 对象托管一个 new 运算符返回的指针,写法如下:
1shared_ptr<T> ptr(new T); // T 可以是 int、char、类等各种类型
此后,ptr 就可以像 T 类型的指针一样使用,即 ptr 就是用 new 动态分配的那个对象。
多个 s ...
C++关键字——extern
C/C++中extern关键字详解
一个很容易忽略的关键字
基本解释extern可以放在变量或者函数前。表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找定义。此外exrtern也可以用来进行链接指定。
1. 用作外部变量的声明与使用如果在多个文件中使用外部变量,只需在一个文件中包含该变量的定义(单定义规则),但在使用该变量的其他所有文件中,都必须使用extern声明它:
12345678//file01.cppextern int cat = 20; //定一个flag变量并初始化int dog = 22;int fleas;//file02.cpp//使用file01的cat和dogextern int cat;extern int dog;
在上述例子中,因为file02并没有声明fleas变量,因此无法使用,但是声明了cat和dog,因此可以使用这两个变量。由此可见,关键字extern并非必不可少的,因为即使省略它,效果也相同。
2、函数的声明函数的声明中extern关键字是可有可无的,因为函数本身不加修饰的话就是extern。但是引用的时候一样 ...