栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

新基础类型(C++11~C++20)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

新基础类型(C++11~C++20)

整数类型long long

long long该类型实际上我们很早就开始使用了,但是是直到C++11才加入标准中的;
long一般表示一个32位的整型,long long一般表示64位的整型;
long long是一个有符号的整型,对应无符号是unsigned long long;
C++标准顶定义,long long至少是一个64位的整型,注意,这里是至少,说明某些平台可能比这个还要大。

定义是可以使用LL和ULL进行区分:

long long a = 10000;
long long b = 10ll;
unsigned long long c = 2;
unsigned long long d = 3ull;
auto d = 9999999ll;

获取当前平台C++编译器中long long等类型数的最值:

#include 
#include 

int main() {
  std::cout << "long max = " << std::numeric_limits::min() << std::endl;
  std::cout << "long max = " << std::numeric_limits::max() << std::endl;

  std::cout << "unsigned long min = "
            << std::numeric_limits::min() << std::endl;
  std::cout << "unsigned long min = "
            << std::numeric_limits::max() << std::endl;

  std::cout << "long long min = " << std::numeric_limits::min()
            << std::endl;
  std::cout << "long long max = " << std::numeric_limits::max()
            << std::endl;

  std::cout << "unsigned long long min = "
            << std::numeric_limits::min() << std::endl;
  std::cout << "unsigned long long max = "
            << std::numeric_limits::max() << std::endl;

  return 0;
}

输出结果:

long min = -9223372036854775808
long max = 9223372036854775807
unsigned long min = 0
unsigned long max = 18446744073709551615
long long min = -9223372036854775808
long long max = 9223372036854775807
unsigned long long min = 0
unsigned long long max = 18446744073709551615
新字符类型 char16_t 和 char32_t

C++11标准添加 这两种类型是为了应对Unicode字符集的UTF-16和UTF-32两种编码方式;
在此标准出现之前,使用char类型处理UTF-8编码的字符,但是对于UTF-16,与UTF-32则没有;

C++11为这三种编码方式提供新前缀:

u8:char    该类型在c++11,c++14中无法编译,只能在支持c++17起的编译器进行编译
u :char16_t
U :char32_t

定义变量或者数组的时候,和char有一点点区别,需要加前缀:

  char a = u8'a';
  char16_t b = u'好';
  char32_t c = U'好';
  char16_t d[] = u"你是真的好";
  char32_t e[] = U"你是真的好";

在linux系统中使用g++进行编译时,需要使用-std=c++17开始的标准进行编译,否则变量a会无法编译通过。

c++标准库已经添加了对新字符类型的支持:

using u16string = basic_string;
using u32string = basic_string;
using wstring = basic_string;

基本的使用:

  std::u16string f = u"123456";
  std::u32string g = U"456789";
  std::wstring   h = L"0123";
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/384354.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号