专栏首页信数据得永生[2013.9.15]关于string::nops为什么是-1

[2013.9.15]关于string::nops为什么是-1

const size_t string::nops = -1;

大家可能看到这条定义有些疑惑 为什么找不到字符串要返回-1呢 size_t是unsigned int类型 -1是int类型 那么同等大小的有符号和无符号转化的时候 仅仅更改数据解释方法 数据本身是不会 变的

由于计算机表示负数是按照补码来的 -1用无符号数的规则解释就成了UINT_MAX

一个字符串的长度 不可能超过所能表示它长度的数据类型的上限 对于size_t的类型来说 最大的数是UINT_MAX 那么最大可能的下标就是(UINT_MAX – 1) 那么任意找一个字符串的位置 自然也就不可能是UINT_MAX了

所以UINT_MAX就表示未找到 -1只是写起来方便 不然要写成0xFFFFFFFF

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 米斯特白帽培训讲义(v2)漏洞篇 文件包含

    文件包含就是将一个文件包含到自己的文件中执行。它可分为本地包含和远程包含,本地包含即包含本地磁盘上的文件,文件名称是相对路径或绝对路径,远程包含即包含互联网上的...

    ApacheCN_飞龙
  • 米斯特白帽培训讲义(v2)漏洞篇 Web 中间件

    中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。是...

    ApacheCN_飞龙
  • 【备忘录】c++ 整形浮点字符串 类型转换

    一、C风格字符串 1.<stdlib.h>中的转换函数  atoi atol atoll itoa ltoa ultoa lltoa atof e...

    ApacheCN_飞龙
  • [PHP] 命令行执行整合pathinfo模拟定时任务

    现在执行其他方法是同步的,可以再优化成开新线程执行这些方法,就不会阻塞主线程的定时了

    陶士涵
  • AS3中的单件(Singleton)模式

    单件(singleton)模式在c#中是最容易实现的模式,其主要用意就在于限制使用者用new来创建多个实例。但在as3中,构造函数必须是public的(语法本身...

    菩提树下的杨过
  • [PHP] 自定义错误处理

    陶士涵
  • 每日一题(9)

    KEN DO EVERTHING
  • WPF创建仿迅雷下载地址下拉选择框—ComboBox

    升级了迅雷7,感觉视觉上的确给人了耳目一新的感觉。我照葫芦画瓢吧仿造了一个迅雷选择下载的下拉框

    yoyofx
  • 分布式锁的三种实现

    在单体时代使用ReentrantLock、synchronized等来实锁,以便保证资源的安全性。但是在分布式时代,则需要分布式锁才能实现资源的安全性。

    用户4143945
  • Reids系列(五)底层数据结构之整数集合

    Redis 已经是大家耳熟能详的东西了,日常工作也都在使用,面试中也是高频的会涉及到,那么我们对它究竟了解有多深刻呢?

    呼延十

扫码关注云+社区

领取腾讯云代金券