C++学习笔记(二)

[TOC]


decltype 类型制定符

用处: 当我们不知道某个变量的类型而需要从表达式推断要定义的类型时,可以使用C++11的第二种类型说明符.,它的实际作用就是返回操作数的数据类型.在此过程中,编译器分析表达式并得到其类型,但实际运算表达式的值

const int ci = 0,&cj = ci;
decltype(ci) x = 0;     //x 的数据类型是 const int
decltype(cj) y = x;        //y 的数据类型是 const int& 必须对其进行初始化,否则编译器会报错

decltype与引用

当decltype得到的数据类型是一个引用值,那么它只能作为赋值语句的左值出现,即必须初始化.

特性: 与auto相比,当decltype的表达式加双重括号代表其引用值.

int i = 42;
decltyp((i)) j = i;    //j的类型是 int& 必须对其初始化

范围for语句

for (declaration : expression)
    statement

expresstion是一个对象,表示一个序列

declaration负责定义一个变量,用于访问序列中的基本元素

cctype头文件函数

isalnum(c)     // c是字母或者数组时为真
isalpha(c)    //c是字母
iscntrl(c)    //c是控制字符
isxdigit(c)    //c是16进制数字
isdigit(c)    //c是数字
isspace(c)    //c是空白(空格,制表符,回车符,换行符,进纸符(\f,\x0c,\cL ))
isgraph(c)    //c不是空格但可以打印
isupper(c)
islower(c)

数组

使用数组下标时,通常使用size_t类型,即与机器相关足够大的无符号整形,存在<cstddef>中</cstddef>

指针也是迭代器

例如:
int a[10]; //定义数组 
int *s = &a[0];    //定义头指针
int *t = &a[10];    //定义尾后指针
//由于此用法极易出错,c++11增加标准库函数 begin(),end()
int *beg = begin(a);
int *last = end(a);

string 的初始化

string允许使用空字符结束的字符数组来初始化string对象

string s("hello world");

string 专门提供了一个名为c_str的成员函数,即返回c风格的字符串,即以空字符结束的字符数组的指针

const char *str = s.c_str();    //将string转化为字符数组的指针类型

vector的数组初始化方法

int int_arr[] = {1,2,3,4,5,6};
vector<int> ivec(begin(int_arr),end(int_arr));    //使用数组首指针与尾后指针初始化
vector<int> subVec(int_arr+1,int_arr+4);
全部评论

相关推荐

点赞 评论 收藏
分享
重生我想学测开:嵌入式的问题,我准备入行京东外卖了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务