C++ 学习笔记之(3)-字符串、向量和数组

本文详细介绍了C++中的字符串、向量和数组的使用,包括命名空间的using声明、string对象的定义和操作、vector的初始化和其他操作、迭代器的使用以及数组的定义和初始化。特别强调了标准库类型string和vector的重要操作,以及数组与C风格字符串的区别。此外,还讨论了多维数组和迭代器在处理容器元素中的作用。
摘要由CSDN通过智能技术生成

C++ 学习笔记之(3)-字符串、向量和数组

命名空间的using声明

C++的命名空间的目的是为了防止名字冲突。为了使用命名空间的成员,可以使用using声明。有了using声明就无需专门的前缀,using声明的形式如下

using namespace::name;
  • 每个名字都需要独立的using声明。
  • 头文件不应该包含using声明,这是因为头文件的内容会拷贝到所有引用它的文件中去,如果头文件里有某个using声明,那么每个使用了该头文件的文件都会有此声明。可能会导致名字冲突

注意:命名空间需要深入学习

标准库类型 string

标准库类型string表示可变长的字符序列,string类型定义在命名空间std中。

定义和初始化 string 对象

  • 直接初始化:不使用等号的初始化
  • 拷贝初始化:使用等号=初始化一个变量,编译器把等号右侧的初始值拷贝到新创建的对象中去。

注意:直接初始化和拷贝初始化需要深入学习

string_initialize_methods

string 对象上的操作

类除了定义初始化其对象的方式外,还要定义对象所能执行的操作。
string_operation_methods

  • 如果表达式中存在size()函数,就不要再使用int类型了,因为size函数返回的是string类的配套类型string::size_type, 一个无符号类型的值,混用intunsigned会出现问题。

  • 标准库允许把字符字面值和字符串字面值转换成string对象,即可以将其混用在一条语句中使用,但必须确保每个加法运算符两侧的运算对象至少有一个是string

    string s1 = "hello", s2 = "world";
    string s3 = s1 + ", " + s2 + '\n';
  • 由于历史原因,且为了与C兼容,C++中的字符串字面值并不是标准库类型string的对象。切记,字符串字面值与string是不同的类型。

处理 string 对象中的字符

我们经常需要单独处理string对象中的字符,cctype头文件定义了一组标准库函数处理这部分工作

cctype_functions

  • C语言头文件形如name.h, C++将其命名为cname, C++程序应该使用后者,因为标准库的名字总能在命名空间std中找到,若使用.h头文件,则无法找到。

  • C++11使用范围for语句可以对string对象的每个字符操作,如果要改变string队形中该字符的值,必须把循环变量定义成引用类型。

    for(auto &c: str)
    c = toupper(c);  // c 是一个引用,因此赋值语句将改变 s 中字符的值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值