Skip to content

字符串、向量、数组

约 400 个字 1 行代码 预计阅读时间 2 分钟

using声明

  • 一般头文件不应该包含using声明

String

  • 直接初始化和拷贝初始化
  • 等性判断对字母的大小写敏感
  • 如果表达式中使用size()(返回一个无符号整数),避免使用int

  • 字面值和对象相加至少+号两边有一个是string对象

Vector

迭代器

  • begin():表示第一个元素, end():表示尾元素的下一个元素,指示的是根本不存在的尾后元素
  • ==, !=如果两个迭代器指向相同的元素或者都是同一个容器的尾后迭代器则相等

迭代器类型

  • iterator是可以操纵的类型
  • const_iterator能读取但不能修改该迭代器指向的元素值
  • 任何改变vector容量的操作会使得迭代器失效

  • begin();end()正序迭代器

  • cbegin();cend() 返回 constbegin();end()
  • rbegin();rend() 逆序迭代器
  • crbegin();crend() 返回 constrbegin();rend()

迭代器运算

  • iter - n
  • iter + n
  • iter1 += n
  • iter1 -= n
  • iter1 - iter2
  • 比较大小

数组

  • 不允许拷贝和赋值
  • string默认初始化为空串

  • 内置类型int,定义为全局默认为0,定义在main函数内部,,不被初始化,可能遇到未定义的奇异值

  • 字符数组初始化:列表初始化方式赋值的C风格字符串末尾无'\0',字符串字面值赋值有'\0'

  • 可以用数组直接初始化vector
C++
vector<int> vInt(begin(a), end(a));
  • strcpy, strcmp, strcat