bitset

与 vector 不一样的是,bitset 类型对象的区别仅在其长度而不在其类型。在定义 bitset 时,要明确 bitset 含有多少位,须在尖括号内给出它的长
度值:
bitset<n> b; b 有 n 位,每位都是 0
bitset<n> b(u); b 是 unsigned long 型 u 的一个副本
bitset<n> b(s); b 是 string 对象 s 中含有的位串的副本
bitset<n> b(s, pos, n); b 是 s 中从位置 pos 开始的 n 个位的副本。

#include <bitset>
#include <string>
#include <iostream>
using namespace::std;int main()
{string str("1111111000000011001101");bitset<32> bit5(str, 5, 4); // 4 bits starting at str[5], 1100bitset<32> bit6(str, str.size()-4); // use last 4charactersbitset<100> a;cout<<a<<" "<<bit5<<" "<<bit6;//<<" "<<b<<" "<<c<<endl;cin>>a;return 0;int ival = 1024;int *pi = 0; // pi initialized to address no objectint *pi2 = &ival; // pi2 initialized to address of ivalint *pi3; // ok, but dangerous, pi3 is uninitializedpi = pi2; // pi and pi2 address the same object, e.g.ivalpi2 = 0; // pi2 now addresses no object//把 int 型变量赋给指针是非法的,尽管此 int 型变量的值可能为 0。但允许把数值 0 或在编译时可获得 0 值的 const 量赋给指针:int ival;int zero = 0;const int c_ival = 0;
//    int *pi = ival; // error: pi initialized from int value of ival
//    pi = zero; // error: pi assigned int value of zeropi = c_ival; // ok: c_ival is a const with compile-time valueof 0pi = 0; // ok: directly initialize to literal constant0
}

指针

指针只能初始化或赋值为同类型的变量地址或另一指针。

把 int 型变量赋给指针是非法的,尽管此 int 型变量的值可能为 0。

但允许把数值 0 或在编译时可获得 0 值的 const 量赋给指针:

int ival;
int zero = 0;
const int c_ival = 0;
int *pi = ival; // error: pi initialized from int value of ival
pi = zero; // error: pi assigned int value of zero
pi = c_ival; // ok: c_ival is a const with compile-time valueof 0
pi = 0; // ok: directly initialize to literal constant 0

C++ 语言无法检测指针是否未被初始化,也无法区分有效地址和由指针分配到的存储空间中存放的二进制位形成的地址。建议程序员在使用之前初始化所有的变量,尤其是指针。

C++ 提供了一种特殊的指针类型 void*,它可以保存任何类型对象的地址:

double obj = 3.14;
double *pd = &obj;
// ok: void* can hold the address value of any data pointer type
void *pv = &obj; // obj can be an object of any type
pv = pd; // pd can be a pointer to any type

void* 表明该指针与一地址值相关,但不清楚存储在此地址上的对象的类型。
void* 指针只支持几种有限的操作:与另一个指针进行比较;向函数传递void* 指针或从函数返回 void* 指针;给另一个 void* 指针赋值。

不允许使用void* 指针操纵它所指向的对象。

转载于:https://www.cnblogs.com/wangzhuazhua/p/4787961.html

2015.09.06 C++笔记相关推荐

  1. 【跃迁之路】【578天】程序员高效学习方法论探索系列(实验阶段335-2018.09.06)...

    [跃迁之路][578天]程序员高效学习方法论探索系列(实验阶段335-2018.09.06) @(跃迁之路)专栏 [跃迁之路]奖励金计划正式开始 从2018.7.1起,[跃迁之路]奖励金计划正式起航, ...

  2. 从腾讯朋友圈揭秘内部AI部门竞争关系,谁能像微信当年一样熬出头? By 微胖2017年11月10日 09:06 撰文 | 宇多田 在腾讯合作伙伴大会上,腾讯首席运营官任宇昕提出的「AI in All」

    从腾讯朋友圈揭秘内部AI部门竞争关系,谁能像微信当年一样熬出头? By 微胖2017年11月10日 09:06 撰文 | 宇多田 在腾讯合作伙伴大会上,腾讯首席运营官任宇昕提出的「AI in All」 ...

  3. 2021.09.27 MySQL笔记

    2021.09.27 MySQL笔记 文章目录 2021.09.27 MySQL笔记 一.展示当前存在的所有数据库 二.使用(选中)一个数据库 三.创建一个数据表 四.查询并展示该数据库内的所有数据表 ...

  4. 伯禹公益AI《动手学深度学习PyTorch版》Task 06 学习笔记

    伯禹公益AI<动手学深度学习PyTorch版>Task 06 学习笔记 Task 06:批量归一化和残差网络:凸优化:梯度下降 微信昵称:WarmIce 批量归一化和残差网络 BN和Res ...

  5. 心情日志 —— 2015/09/09

    title: 心情日志 -- 2015/09/09 date: 2015/9/9 21:00:00 categories: 心情日志 tags: [心情日志] 2015/09/09 Wed 武汉 26 ...

  6. 计算机系统招标范围,信息化系统招标文件(2015.09.16最终稿1).doc

    信息化系统招标文件(2015.09.16最终稿1) 鸡西市.七台河市供水(干线)工程 联合调度与运行管理决策支持系统 招标设计 技术规范 水利水电勘测设计研究院 二○一五年九月 目 录 1 工程概况1 ...

  7. [2015/09/08] Unity3D飞机大战(简陋版) Practice

    自己学的还是太差,进度很慢,不停地查各种资料. 1  2D背景实现自动滚动 1.1 插入2D背景 直接插入图片就好,我还在想sprite到底是用来做什么的-- 3D摄像头改为2D,Orthograph ...

  8. 滴滴2016.09.06校招 在线笔试 - 2道编程题

    滴滴2016.09.06校招 在线笔试 - 2道编程题 1.连续子数组的最大和 题目描述 一个数组有N个元素,求连续子数组的最大和.例如:[-1,2,1],和最大的连续子数组为[2,1],其和为3. ...

  9. docker18.09.06 Centos安装教程

    一.安装准备 Docker 运行在 CentOS 7 上,要求系统为64位.系统内核版本为 3.10 以上 可以使用以下命令版本 uname -r 如果有旧版本则先删除 sudo yum remove ...

最新文章

  1. 低代码、无代码?深度解读硅谷新趋势(上)
  2. 论坛报名 | NLP 是否到了产业应用的黄金时代?
  3. 基于Android设备的Kali Linux渗透测试教程第1章渗透测试
  4. vs2010 常见问题处理
  5. ASP.NET报错集合一----.net4.0创建项目后,在iis上部署项目,无法浏览,提示404
  6. Git学习系列(五)分支管理详解
  7. 使用SimpleDateFormat出现时差
  8. AdvancedInstaller.com 命令行参数
  9. 9.打开ZF的错误提示
  10. elasticsearch设置_search的size
  11. Apizza-流程测试模式
  12. jQuery设置下拉框select 默认选中第一个option
  13. (SDL2)SDL在ubuntu下的测试代码(雷霄骅)
  14. Python网络爬虫与信息提取(10)—— 代码搜索全网音乐爬取并下载
  15. codesys file读写配置参数程序
  16. excel求方差和标准差的函数_excel标准差函数是什么?怎么计算?
  17. java-计算球体积
  18. android 清理系统缓存文件怎么恢复,文件过期或已被清理怎么恢复(微信如何恢复已清理文件)...
  19. [译] Cilium:基于 BPF+EDT+FQ+BBR 更好地带宽网络管理
  20. ffmpeg 命令行总结

热门文章

  1. python【数据结构与算法】内置函数 zip() 函数(看不懂你来打我)
  2. 【题解】 HDU 2570 迷瘴
  3. linux技术工程师,LINUX系统工程师技术(Engineer)-------第四天
  4. python如何扩展库_python的常用扩展库以及使用方式
  5. 选择域名需注意什么才更有利于网站优化?
  6. mysql存储过程queue_mysql – 在Sequelize中调用输入/输出类型存储过程
  7. 计算机专业术语graphui,计算机专业术语英译
  8. unity android 启动,Android启动Unity
  9. ida android sign加密,最右sign-v2签名算法追踪及逆向还原
  10. python 冷门_Python最冷门的模块