C++学习笔记二

C++学习笔记二

  1. 迭代器
  2. bitset
  3. 数组、指针

迭代器

学过python的人应该知道啥是迭代器
C++中的迭代器是一种检查容器内的元素并且进行遍历的数据结构

  • 类型
vector<int>::iterator iter;

定义了一个迭代器。

  • begin
    容器使用该函数返回一个从前到后的迭代器

  • end
    容器使用该函数返回最后一个元素后面的元素

若容器为空,则v.begin() == v.end()

  • 自增操作
    使用*iter操作获取迭代器指向的元素(不就是指针)
    使用++iter将iter指向下一个元素(不就是指针)

  • const_iterator
    不能重写的迭代器,即它不能改变它指向的元素的值

  • const iterator
    不能改变自己指向的元素的迭代器

其实它就是指针换了种名目而已

bitset

需要包含头文件bitset

使用bitset数据类型来对二进制数位进行操作
使用方法:

bitset<32> bitvec;
bitset<32> b(u);  // b是u的一个副本
bitset<32> b(s, pos, n);  // b是s中从pos开始的n个位的副本

就是设置一个大小为32的二进制对象
例如,bitset<8> b = 8,输出b,结果为00001000
bitset<8> b(string("11111111")),输出结果为11111111
注意,0为低位

操作

bitset支持所有的位操作
以下是常用的操作:

b.any()  // 检查是否有1
b.none()  // 检查是否不存在1
b.count()  // 检查置为1的个数
b.size()  // b的二进制位的个数
b.test(pos) // b的第pos位是否为1
b.set()  // 设为-1
b.set(pos)  // b的第pos位设1
b.reset()  // 用法类似set,置为0
b.flip()  // 用法与reset类似,取反
b.to_ulong()  // 返回一个unsighed long 值

数组、指针

动态数组

C++使用newdelete来实现mallocfree的功能

  • new用法举例
int *a = new int[10];  // 未初始化
int *b = new int[10]();  // 已初始化
  • delete用法举例
delete [] a;  // 释放数组空间a
delete a;  // 释放a指向的一个元素大小的空间

使用string.c_str可以返回C风格的字符串

数组与Vector

C++可以使用数组初始化Vector对象

const size_t arrSize = 6;
int arr[arrSize] = {
    
    0, 1, 2, 3, 4, 5};
vector<int> vec(arr, arr + arrSize);

指针


不会吧不会吧,不会有人连指针都不会吧

猜你喜欢

转载自blog.csdn.net/weixin_45206746/article/details/112466654
今日推荐