c++第四章 数组,vector与字符串

c++第四章 数组,vector与字符串

  • 利用声明引用来使数组避免隐式转换
 int a[3] = {1, 2, 3};  // int[3]
 auto& b = a;           //int(&)[3]
  • 不要使用extern指针来声明数组,会造成Unknown Bounded Array声明
extern int[];//Unknown Bounded Array声明
extern int[4];//可以
  • std::begin()/std::end()// int *
  • std::cbegin()/std::cend()// const int *
int a[3] = {1, 2, 3};
std::cout << a << ' ' << &(a[0]) << ' ' << std::begin(a) << std::endl;
std::cout << a+3 << ' ' << &(a[3]) << ' ' << std::endl(a) << std::endl;
  • 指针算数
  • 指向相同数组的指针可以比较大小,指向不同数组的指针不建议比较大小
int a[3] = {1, 2, 3};
auto ptr = a;
auto ptr2 = a + 3;
std::cout << (ptr == ptr2) << '\n';
std::cout << (ptr != ptr2) << '\n';
std::cout << (ptr < ptr2) << '\n';
std::cout << (ptr > ptr2) << '\n';
std::cout << (ptr <= ptr2) << '\n';
std::cout << (ptr >= ptr2) << '\n';
  • 指针求距离
int a[3] = {1, 2, 3};
auto ptr = a;
auto ptr2 = a + 3;
std::cout << (ptr - ptr2) << '\n';
std::cout << (ptr2 - ptr) << '\n';
  • 其他操作

  • 求数组大小

int a[15];
std::cout << sizeof(a) / sizeof(int) << std::endl;//c语言的函数
std::cout << std::size(a) / std::size(int) << std::endl;//c++std的函数
std::cout << std::cbegin(a) / std::cend(int) << std::endl;//c++的函数
  • 遍历数组
int a[15] = {2, 3 ,5 ,7};
auto ptr = std::cbegin(a);
while(ptr != std::cend(a)) //end()/cend()指向末尾元素的下一个位置
{
	std::cout << * ptr << std::endl;
	ptr = ptr + 1;
}
for(int x : a)
{
	std::cout << x << std::endl;
}
  • c字符串
#include <cstring>

char str[] = "hello";
auto ptr = str;
std::cout << strlen(str) << std::endl;
  • 多维数组
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值