C++primer 第3章 字符串、向量和数组

3.1命名空间的using声明

C++引入了类作用域,类是出现在文件内。在不同的作用域中可以定义相同名字的变量,互不干扰便于系统区别他们。

通过声明命名空间,可以方便地访问该空间下的变量、函数。

using namespace std;

也可以直接声明命名空间的变量、函数。用什么,声明什么。

using std::cin;

自定义命名空间。

namespace ns1//指定命名空间ns1

{

    int a;

    double b;

}

头文件不应包含using声明

防止冲突。

3.2标准库类型string

长度可变的字符序列。内存连续。

string 相当于特殊的容器。

3.2.1定义和初始化string对象

string s1;            //默认初始化

    string s2(s1);        //直接初始化

    string s3 = s1;       //拷贝初始化

    string s4("value");   //直接初始化

    string s5 = "value";  //拷贝初始化

    string s6(5, 'c');    //直接初始化

3.2.2string对象上的操作

读写string对象

  

  

  

3.2.3处理string对象中的字符

cctype头文件中的函数

isalnum(c)

当c是字母或数字时为真

isalpha(c)

当c是字母时为真

iscntrl(c)

当c是控制字符时为真

isdigit(c)

当c是数字时为真

isgraph(c)

当c不是空格但可打印时为真

islower(c)

当c是小写字母时为真

isprint(c)

当c是可打印字符时为真

ispunct(c)

当c是标点符号时为真

isspace(c)

当c是空白时为真

isupper(c)

当c是大鞋字母时为真

isxdigit(c)

当c是十六进制数字时为真

tolower(c)

如果c是大写字母,输出对应的小写字母;否则原样输出c

toupper(c)

如果c是小写字母,输出对应的大写字母;否则原样输出c

3.3标准库类型vector

C++既有类模板,也有函数模板。

模板本身不是类或函数,可以看作 为编译器生成类或函数编写的一份说明。

编译器根据目标创建类或函数的过程叫实例化。

3.3.1 定义和初始化vector对象

列表初始化vector对象

3.3.3vector支持的操作

Vector支持的操作

v.empty()

如果v不含任何元素,则为真;否则假

v.size()

返回v中元素个数

v.push_back(t)

向v的尾端添加一个值为t的元素

v[n]

返回v中索引为n的元素的引用

v1 = v2

用v2中元素的拷贝替换v1中的元素

v1={a,b,c}

用列表中的元素替换v1的元素

v1 == v2

比较是否相等

v1 != v2

比较是否不相等

<,<=,>,>=

以字典顺序进行比较

v.clear()

清空

v.erase(it)

删除迭代器it指向的元素。返回尾后迭代器。

3.4迭代器介绍

迭代器:容器类型内置的“指针”

标准容器迭代器的运算符

*iter

返回迭代器iter所指元素的引用

iter->mem

解引用iter并获取该元素的名为mem的成员

++iter

令iter指向容器的下一个元素

--iter

令iter指向容器的上一个元素

iter1 == iter2

判断两个迭代器是否相等

iter1 != iter2

判断两个迭代器是否不相等

end表示尾后,它本身不指向元素,不能解引用

3.5数组

定义数组时,维度应该是const

显示初始化数组元素

字符数组的特殊性

不能将数组的内容拷贝给其他数组作为初始值。

3.5.3   指针和数组

C++中,使用数组的时候编译器一般会把它转换成指针。

取值符& 获取指向某个对象的指针。

编译器会将数组名替换为指向数组首元素的指针。

3.5.4   C风格字符串

标准容器迭代器的运算符

strlen(p)

返回p的长度,空字符不计算在内

strcmp(p1,p2)

比较p1和p2的相等性;相等为0;p1大为正;p1小为负。

strcat(p1,p2)

将p2附加到p1之后,返回p1

strcpy(p1,p2)

将p2拷贝到p1,返回p1

3.6多维数组

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值