
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";
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)