【每天学一点】C++基础04
2016-06-13 19:56
337 查看
昨天去苏州出了一天差,现场调试机器,所以没有更新。今天继续学,前天的C++03,发出去发现少了一半,我发现CSDN里在线保存,只能保存第一次保存的东西,第二次保存退出后,显示的还是第一次的内容。这好烦,那我就先开始总结一下上次学的,然后再看点别的了。
vector:容器,使用需要加
定义初始化:
v.push_back(a) 把a添加到v的尾端
注意:
迭代器:访问string对象的字符或vector对象的元素
迭代器运算符:
迭代器的运算:
二分查找法:
C风格字符串:字符串存放在字符数组中并以空字符结束,即后面加(’\0’)
C标准库String函数
标准库函数begin和end
使用数组初始化vector对象
移位运算符
sizeof运算符:返回一个表达式或类型名字所占用字节数
命名的强制类型转换:
1.static_cast 除了const,只要明确类型的转换都可以使用
2.const_cast 只能改变const,即去掉常量性质
3.reinterpret_cast
vector:容器,使用需要加
#include<vector>
定义初始化:
vector<T> v1 //v1是一个空vector,它的潜在元素都是T类型,执行默认初始化 vector<T> V2=V1 || v2(v1) //v2=v1 vector<T> v3(n) || v4(n,val) //v3有n个重复元素,执行了初始化 vector<T> v5{a,b,v……} ||v5={a,b,c……} //v5包含初始值个数,且对应初始化
v.push_back(a) 把a添加到v的尾端
v.empty(); v.size(); v.push_back(a); v ; //返回v中第n个元素的引用
注意:
vector<int> v1; for(decltype(v1.size()) I=0;i!=10;++i) v[i]=i; //错误,v不包含任何元素
迭代器:访问string对象的字符或vector对象的元素
auto b=v.begin(); //b表示v的第一个元素 auto e=v.end(); //e表示v的尾元素的下一个位置
迭代器运算符:
*iter; //返回迭代器iter所指元素的引用 ++iter; --iter; iter->mem=(*iter).mem;
迭代器的运算:
iter+n iter-n iter+=n iter1-iter2
二分查找法:
//text有序 auto beg=text.begin(),end=text.end(); auto mid=text.begin()+(end-beg)/2; //初始状态下的中间点 while(mid!=end&&*mid!=sought){ if(sought<*mid) end=mid; else beg=mid+1; mid=beg+(end-beg)/2; }
C风格字符串:字符串存放在字符数组中并以空字符结束,即后面加(’\0’)
char a[4]="lyys"; //错误,初始值过多。后面应留'\0'
C标准库String函数
#include<cstring> strlen(p) //返回P的长度,空字符不计算在内 strcmp(p1,p2) //比较p1和p2的相等性。若p1==p2返回0;若p1>p2返回一个正值,相反负值 strcat(p1,p2) //将p2附加到p1后,返回p1 strcpy(p1,p2) //将p2拷贝给p1,返回p1
标准库函数begin和end
//#include<iterator> 似乎可无 int ia[]={0,1,2,3} int *beg=begin(ia); //指向ia首元素指针 int *end=end(ia); //指向ia尾元素的下一个位置指针
使用数组初始化vector对象
int arr[]={0,1,2,3}; vector<int> v(begin(arr),end(arr));
移位运算符
~ //位求反 << //左移 char8位,int32位,移出丢弃,补0 >> //右移 & //位与 ^ //位异或 | //位或
sizeof运算符:返回一个表达式或类型名字所占用字节数
const int *p=8; sizeof(*p) //p所指类型空间的大小 sizeof(p) //指针所占空间大小
命名的强制类型转换:
1.static_cast 除了const,只要明确类型的转换都可以使用
double a=static_cast<double>(j)/i ;
2.const_cast 只能改变const,即去掉常量性质
const int *a; int *b=const_cast<int*>(a);
3.reinterpret_cast
int *ip; char *pc=reinterpret_cast<char>(ip); //本质上pc所指的是一个Int而非字符
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- 那些年,我还在学习C# 学习笔记续
- Ruby 魔法 学习笔记之一
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- sqlserver 数据库学习笔记
- CSS学习笔记Padding 属性中参数的定义与使用
- prototype 1.5 & scriptaculous 1.6.1 学习笔记
- prototype 学习笔记整理
- Oracle学习笔记(六)
- C++联合体转换成C#结构的实现方法
- 关于SQLServer2005的学习笔记 XML的处理
- Jquery 基础学习笔记
- ExtJs 学习笔记基础篇 Ext组件的使用第1/2页
- linux Shell学习笔记第五天