字符串、向量和数组

命名空间的using声明

在这里插入图片描述
在头文件中一般不使用using,避免影响名称空间。

string

初始化string的方式

在这里插入图片描述

string的操作

在这里插入图片描述

string::size_type

在这里插入图片描述

string 比较大小

在这里插入图片描述

字符串相加

与Java不同,c++里面字符串字面值不是string对象,所以有以下规则
在这里插入图片描述

处理string的字符

遍历

// 可以改变s的字符
for (auto& c : s) {
	c = 'w';
}
// 改变不了s的字符
for (auto c : s) {
	c = 'w';
}

vector

在这里插入图片描述

初始化

在这里插入图片描述

添加元素 push_back()

如果使用范围for循环,则不能使用push_back(),因为他会改变v.end()的位置

vector<int> v;
...
for(auto i : v){
	v.push_back(xxx); // 不可以这样
}

其他操作

在这里插入图片描述
不能通过下标的方式添加元素
在这里插入图片描述

迭代器

auto a = v.begin(); // 返回指向第一个元素的迭代器
auto b = v.end(); // 返回指向尾元素下一个位置的迭代器

当容器为空时,它两都指向同一个位置:尾迭代器
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
const_iterator

auto a = v.cbegin(); // 返回指向第一个元素的常量迭代器
auto b = v.cend(); // 返回指向尾元素下一个位置的常量迭代器

这两个迭代器,返回的类型都是const_iterator,即不可以通过它改变容器的值

(*it).empty() 和 it->empty()

两者效果一样,但是后者更易写(*it).empty()的()不可以省略,这是运算优先级的原因。
在这里插入图片描述

迭代器运算

在这里插入图片描述

数组

数组的大小不变,不可以任意向其中增加元素

定义和初始化

在这里插入图片描述

字符串数组

在这里插入图片描述

不允许拷贝和赋值

在这里插入图片描述

复杂的数组声明

在这里插入图片描述

int main() {
	int a[2] = { 1,231};
	int(*p)[2] = &a;
	int* q = a;
	cout << *(*(p)+1); // 231
	cout << (*p)[1]; // 231
	cout<< *(q+1); // 231
}

在这里插入图片描述

指针和数组

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值