C++Primer笔记(包含string、vector和数组指针)
来源:互联网 发布:非线性优化算法 编辑:程序博客网 时间:2024/09/21 11:18
1. String类型定义的变量,包含’\0’,不过size()函数返回的大小值不包含’\0’,如:string str=”her”;str.size()的值是3,不过str[3]的值为’\0’,即是有效访问。
2. String类型变量的运算符:+,其返回值是string类型的,所以str+”hello”+” ”+”world”是有效的操作,不过”hello”+” ”+”world”+str不是有效的操作,因为+运算符的左右操作数至少有一个是string类型的,注意:字符串字面值不是string类型,这个要和其他语言区别开,如:”hello”不具有string类型的操作。
3. 在头文件中总是使用完全限定的标准库名字,理由是头文件的内容会被预处理复制到程序中,如果用using指令,则相当于在包含该头文件的每个程序中都放置了同一using声明,不管,该程序是否需要Using声明。
4. Vector初始化可用已存在的数组进行初始化,如int* numArr=newint[3];numArr[0]=0;numArr[1]=1;numArr[2]=2;vector<int>iArr(numArr,numArr+2);其中iArr中包含2个元素,最后一个元素不包含,即属于[)左闭右开区间,[ begin,end)
5. String为空串时,访问[0]下标不会出错,不过对其进行赋值时会出现未知情况,所以不应该对空串进行访问。不过对于vector为空元素时,不能对任何元素进行访问。
6. 注意Vector<vector<int>>,其可以实现二维数组。
7. Const vector<int>的beign()函数返回的迭代器类型是:const_iterator
8. Bitset集合输出时,先输出高位,再输出低位,如:bitset<10> bitvec2(6);cout<<"bitvec2:"<<bitvec2<<endl;结果是:0000000110,即结果是二进制结果表示高位在左,低位在右
9. vector<int&> iReference;// error:容器元素的类型不能是引用类型
10. 本条主要是解释#NDEBUG对assert的影响。头文件assert.h定义的宏受NDEBUG的影响.如果预程序在处理这个头文件时已经定义了NDEBUG,assert宏的内容就定义为空,这意味着assert宏不在起作用.所以,可以在最终发布程序的时候可以使用-DNDEBUG关闭断言功能或者把#define NDEBUG加到每个源文件中,但这条语句必须放在#include <assert.h>之前.
#include<stdio.h>
#define NDEBUG//要加在#include<assert.h>前面
#include<assert.h>
int main()
{
int x = 0;
assert(x);
printf("aa\n");
return 0;
}
trace(),assert()都只是在DEBUG的模式下才起作用的,如果定义了NDEBUG,编译器会认为是非DEBUG的模式(虽然编译出来的程序还是很大,而且还可以进行调试),此时trace(),assert()就没有用了.就如同你编译成release版的时候这些没有用一样.
#define DEBUG 会重新打开调试开关
- C++Primer笔记(包含string、vector和数组指针)
- C++Primer笔记3(第四章-数组和指针)
- c++primer 第三章数组 string vector
- 指针和数组(c++primer)
- C++primer(六) 数组和指针
- C++primer 4.4 数组指针和指针数组(转)
- C++primer(第五版)第三章字符串、向量和数组学习笔记1(string包含C++11特性及部分习题解答)
- C++Primer 数组和指针
- 【C++Primer学习笔记】第4章 数组和指针
- C++Primer笔记 第四章 数组和指针
- c++primer学习笔记3 - 数组和指针
- C++Primer学习笔记4 数组和指针
- C++ primer学习笔记(5)——vector中装的是string指针怎么办
- 精读《 C++ Primer》笔记(一):1-5章 输入输出,指针,头文件,string,vector
- 『C++ Primer学习笔记』Chapter 3——string对象、vector对象以及数组的配套类型,C风格字符串问题和处理区别
- C++Primer--string、vector、iterator
- 【C Primer Plus】第十章 数组和指针(一)
- 【C Primer Plus】第十章 数组和指针(二)
- (排序)用C语言实现的简单选择排序(选择排序,其实个人认为也是交换排序)
- 队列实现对有n个元素的数组循环左移k位
- java 震动提示窗体
- mysql卸载后重装失败的解决方法
- HDU2716:Message Decowding
- C++Primer笔记(包含string、vector和数组指针)
- 如何交换两个变量的值
- 缓存简析
- 【暗恋99天】下载
- linux下鼠标键盘按键的模拟
- Makefile
- http协议
- 开源!!! JEECG v2.3 发布,基于代码生成器的智能开发框架
- poj1528结题报告