C++学习篇

C++ 学习篇

目前工作和算法相关,需要用到C++和Python,现特此总结一篇C++学习文章,后续会再加一篇Python学习文章,工作中能够坚持学习自己想学的东西实属不易,希望黑暗中能够保守一束光,希望勉励自己加油,努力奋斗,希望星星之火,可以燎原!

基础知识

1. 结构体struct
在C语言中,使用struct定义了一个结构体之后,要使用它,也要跟上struct关键字,否则系统不认这个结构体,比如:
struct SDK_SYSTEM_TIME{

…//省略
};//结构体定义
struct SDK_SYSTEM_TIME now;//定义一个结构体变量now
这样每次使用这个结构体的时候都要加上struct关键字,比较麻烦,所以,我们可以用typedef关键字来给这个结构体定义一个别名,这样以后再使用这个结构体的时候就直接用别名,而不需要加struct关键字了,如:
typdef struct SDK_SYSTEM_TIME{

…//省略
}SDK_SYSTEM_TIME;//结构体定义的同时,指定别名
SDK_SYSTEM_TIME now;//使用别名定义结构体变量now
这就是这样做的意义,要注意,在C++中,用struct定义结构体之后,可以直接使用结构体名来定义变量,而不需要再加struct关键字。
例如:

 #include 

using namespace std;
typedef struct MyList {
	int value;
	int* next;
 } YourList;
int main() {
 MyList list1;
 cout << sizeof(list1) << endl;
 YourList list2;
 cout << sizeof(list2) << endl;
}

2. 命名空间namespace

所谓namespace,是指标识符的各种可见范围。
C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。
由于namespace的概念,使用C++标准程序库的任何标识符时,可以有三种选择:

1、直接指定标识符。

std::cout << std::hex << 3.4 << std::endl;

2、使用using关键字。

using std::cout;
using std::endl;

以上程序可以写成

cout << std::hex << 3.4 << endl;

3、最方便的就是使用using namespace std;
例如:
#include
#include
#include
using namespace std;
这样命名空间std内定义的所有标识符都有效。就好像它们被声明为全局变量一样。那么以上语句可以如下写:

cout << hex << 3.4 << endl;

你可能感兴趣的:(C++)