随笔分类 -  软件技术

上一页 1 2 3 4 5 6 7 8 ··· 24 下一页
编程语言,计算机软件相关
摘要:▲《C++ Primer》 P109 我们无法保证 c_str 函数返回的数组一直有效,事实上,如果后续的操作改变了 string 的值就可能让之前返回的数组失去效用。 WARNING: 如果执行完 c_str() 函数后程序想一直都能使用其返回的数组,最好将该数组重新拷贝一份。 阅读全文
posted @ 2024-09-21 15:51 double64 阅读(5) 评论(0) 推荐(0) 编辑
摘要:▲ 《C++ Primer》 P96 指针也都支持上面的操作。 两个指针相减的结果的类型是一种名为 ptrdiff_t的标准库类型,和 size_t 一样,ptrdiff_t 也是一种定义在 cstddef 头文件中的机器相关的类型。因为差值可能为负值,所以 ptrdiff_t 是一种带符号类型。( 阅读全文
posted @ 2024-09-21 14:48 double64 阅读(23) 评论(0) 推荐(0) 编辑
摘要:当使用数组作为一个 auto(参见 2.5.2节,第61页)变量的初始值时,推断得到的类型是指针而非数组: int ia[]= {0,1,2,3,4,5,6,7,8,9}; // ia是一个含有10 个整数的数组 auto ia2(ia); // ia2 是一个整型指针,指向 ia 的第一个元素 i 阅读全文
posted @ 2024-09-21 14:42 double64 阅读(10) 评论(0) 推荐(0) 编辑
摘要:显式初始化数组元素 如果指明了维度,那么初始值的总数量不应该超出指定的大小。如果维度比提供的初始值数量大,则用提供的初始值初始化靠前的元素,剩下的元素被初始化成默认值(参见 3.3.1节,第 88 页): const unsigned s=3; int ial[sz]={0,1,2}; //含有3个 阅读全文
posted @ 2024-09-21 13:36 double64 阅读(63) 评论(0) 推荐(0) 编辑
摘要:▲ 《C++ Primer》 P30 ▲ 《C++ Primer》 P38 阅读全文
posted @ 2024-09-20 19:35 double64 阅读(3) 评论(0) 推荐(0) 编辑
摘要:▲ 《C++ Primer》 P96 ▲《C++ Primer》 P99 迭代器距离类型:difference_type,string和vector都定义了difference_type,因为这个距离可正可负,所以difference type是带符号类型的。 阅读全文
posted @ 2024-09-20 19:28 double64 阅读(4) 评论(0) 推荐(0) 编辑
摘要:可参考 《C++ Primer》 P197 页 阅读全文
posted @ 2024-09-19 22:39 double64 阅读(5) 评论(0) 推荐(0) 编辑
摘要:▲ 《C++ Primer》 P87 ▲ 《C++ Primer》 P91 阅读全文
posted @ 2024-09-19 19:20 double64 阅读(5) 评论(0) 推荐(0) 编辑
摘要:如果循环体内部包含有向vector对象添加元素的语句,则不能使用范围for循环,具体原因将在5.4.3节(第168页)详细解释。 WARNING:范围for语句体内不应改变其所遍历序列的大小。 ▲《C++ Primer》 P91 不能在范围 for 循环中向 vector 对象添加元素。另外一个限制 阅读全文
posted @ 2024-09-18 19:19 double64 阅读(8) 评论(0) 推荐(0) 编辑
摘要:vector<int> vl(10); //v1有10 个元素,每个的值都是0 vector<int> v2{10}; //v2有1个元素,该元素的值是 10 vector<int> v3(10,1); //v3有10个元素,每个的值都是1 vector<int> v4{10,1}; //v4有2个 阅读全文
posted @ 2024-09-18 17:41 double64 阅读(52) 评论(0) 推荐(0) 编辑
摘要:const string hexdigits = "0123456789ABCDEF";//可能的十六进制数字 《C++ Primer》 P85 阅读全文
posted @ 2024-09-18 08:09 double64 阅读(8) 评论(0) 推荐(0) 编辑
摘要:《C++ Primer》 P82 阅读全文
posted @ 2024-09-18 07:53 double64 阅读(8) 评论(0) 推荐(0) 编辑
摘要:因为某些历史原因,也为了与℃兼容,所以 C++ 语言中的字符串字面值并不是标准库类型 string 的对象。切记,字符串字面值与string是不同的类型。 所以,不能将两个字面值字符串直接相加+。 参考:《C++ Primer》 P81 阅读全文
posted @ 2024-09-18 07:49 double64 阅读(6) 评论(0) 推荐(0) 编辑
摘要:class Dog { public: void Update_Func(short i); short (Dog::*pfunc)(short); std::function<short(short)> ffunc; public: short goodMorning(short id); sho 阅读全文
posted @ 2024-09-16 10:32 double64 阅读(4) 评论(0) 推荐(0) 编辑
摘要:一般而言,一个左值表达式表示的是一个对象的身份,而一个右值表达式表示的是对象的值。 我们不能将其绑定到要求转换的表达式、字面常量或是返回右值的表达式(参见 2.3.1节,第 46页)。右值引用有着完全相反的绑定特性:我们可以将一个右值引用绑定到这类表达式上,但不能将一个右值引用直接绑定到一个左值上: 阅读全文
posted @ 2024-09-16 09:25 double64 阅读(9) 评论(0) 推荐(0) 编辑
摘要:希望从表达式的类型推断出要定义的变量的类型,但是不想用该表达式的值初始化变量。 decltype(f())sum =x; //sum的类型就是函数f的返回类型 编译器并不实际调用函数f,而是使用当调用发生时f的返回值类型作为sum 的类型。 decltype 处理顶层 const 和引用的方式与 a 阅读全文
posted @ 2024-09-15 21:02 double64 阅读(23) 评论(0) 推荐(0) 编辑
摘要:int i=0, &r = i; auto a=r; // (int a) a是一个整数(r是i的别名,而i是一个整数) auto 一般会忽略掉顶层 const(参见 2.4.3节,第57页),同时底层 const 则会保留下来,比如当初始值是一个指向常量的指针时: const int ci=i, 阅读全文
posted @ 2024-09-15 20:25 double64 阅读(14) 评论(0) 推荐(0) 编辑
摘要:“工具”->“选项”->“文本编辑器”->“C/C++”->“代码样式”->“格式设置”->“间距”->“指针/引用对齐方式”->“右对齐”。 阅读全文
posted @ 2024-09-15 19:52 double64 阅读(23) 评论(0) 推荐(0) 编辑
摘要:指针、常量和类型别名 如果某个类型别名指代的是复合类型或常量,那么把它用到声明语句里就会产生意想不到的后果。例如下面的声明语句用到了类型pstring,它实际上是类型 char* 的别名 typedef char *pstring; const pstring cstr=0; //cstr是指向ch 阅读全文
posted @ 2024-09-15 19:50 double64 阅读(12) 评论(0) 推荐(0) 编辑
摘要:定义静态成员 和其他的成员函数一样,我们既可以在类的内部也可以在类的外部定义静态成员函数。当在类的外部定义静态成员时,不能重复static关键字,该关键字只出现在类内部的声明语句: void Account::rate(double newRate) { interestRate = newRate 阅读全文
posted @ 2024-09-15 12:30 double64 阅读(18) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 8 ··· 24 下一页
点击右上角即可分享
微信分享提示