2016年你最想对自己说啥(13)
\u0026amp;\u0026amp;是逻辑与 只要有一个不为真就不是真值;
--------------------------------------------------------------------------------------------------------------------------------------------
2016/1/27
当一份‘确定’的收益或一份冲击更大收益的’机会‘让你二选一时,我会选择后者,然后现实教会你,选了前者的人会吃干抹净的和你讲机会平等。
stream 流
iostream 输入输出流
fstream 文件流
sstream 内存流
IO对象无拷贝或赋值
while(cin\u0026gt;\u0026gt;word)的形式是可以用来判断一个输入是否成功的。给一个int型变量输入字符是会报错的。
endl显式的刷新缓存区。
顺序容器有
vector deque list forward_list array string
--------------------------------------------------------------------------------------------------------------------------------------------
2016/1/28
如果没什么想写的,至少得签个到。
ASCII码表。大写在小写前面,相差34,A是65。
--------------------------------------------------------------------------------------------------------------------------------------------
2016/1/29
这几天被某数据分析任务折磨的有点惨。
看了3遍C++Primer的前七章后,终于看到了第九章,容器
容器里面要放类型
vector\u0026lt;int\u0026gt;
list\u0026lt;double\u0026gt;
deque\u0026lt;Sales_data\u0026gt;
容器的容器,外面容器包含的元素类型是另一个容器
vector\u0026lt;vector\u0026lt;string\u0026gt;\u0026gt;lines;
数组的声明为a,d必须是个常量表达式,所以类似 unsigned cnt = 43; string bad;这段方式声明是错误的。因为cnt不是常量表达式。如果是const,则可以。定义数组的时候必须制定数组的类型,不允许用auto关键字有初始值的列表推断类型。另外和vector一样,数组的元素应该为对象,因此不存在引用的数组。容器类的下标都可能越界,且编译器不负责检查,所以自己写的时候一定要小心使用数组时,编译器一般把他们转换成指针。在大多数表达式中,使用数组类型的对象其实是使用一个指向该数组首元素的指针。数组不是类类型,因此,不能用.begin和.end的形式调用,只能把数组做为参数传递给begin和endbegin(num);指向数组的指针可以做迭代器的一切运算,且指针加减意味着前进或后退了相应的位置而已。数组的长度类型是size_t类型。内置的下标运算符所用的索引值不是无符号类型,这一点与vector和string不一样。
C++中的string类型需要有两种初始化,1 string s("nihao") 2 string s = "nihao"。这两种方法都行,但是用“=”的方式是拷贝初始化。string对象忽略开头的空格,且遇到空格停止接收。getline((cin,line)),getline函数可以克服遇到空格就停止接收的难题,它是遇到换行符停止接收。string::size_type类型是个无负的整型。 如果n是负数,因为size()函数返回的是string::size_type类型,因此比较size()和n时,会将n变化为一个较大的整形,所以基本上size()\u0026lt;n这个判断是true字符串字面值和string是不同的类型。
string的下标也是一个size_type类型。因此,下标非负。vector\u0026lt;int\u0026gt; 或vector\u0026lt;string\u0026gt; 或vector\u0026lt;vector\u0026lt;int\u0026gt;\u0026gt;vector是个模板,而非类型。它里面的元素是\u0026lt;\u0026gt;中的类型。vector的下标可以用来访问已有的元素,但不能添加新元素,添加新元素需要用push_backiterator迭代器。string不属于容器类型,但它支持很多与容器类似的操作。迭代器类似指针,都提供了对对象的间接访问。所有有解引用迭代器 *iter及 iter-\u0026gt;men之类的操作。迭代器中的for循环不用\u0026lt;来做为结束条件,而是使用!=的方式。vector\u0026lt;int\u0026gt;::iterator it; //it能读写vector\u0026lt;int\u0026gt;的元素string::iterator it2; //it2能读写string对象中的字符vector\u0026lt;int\u0026gt;::const_iterator it3; //it3只能读元素,不能写元素string::const_iterator it4; //it4只能读字符,不能写字符(*it).empty() 前面的*it必须有括号,因为说明先对it做解引用处理,然后解引用后,在empty函数。由于这种方式是比较麻烦的,因此(*it).empty()可以用it-\u0026gt;empty()的形式来处理。谨记,但凡使用率迭代器的循环体,都不要向迭代器所属的容器添加元素。迭代器会失效。
推荐阅读
- 手机■遇“纠纷”自己报警被识破 男子假卖手机骗60多万
- 有啥方法,网站,项目可以自己练习计算广告学
- 设计专业学生上传自己的作品,用哪个网站比较好
- 趣头条|先下手为强!喜提途观X,自己先享受才是最重要的
- 商家通过低保户购物而把自己的利润返还赠送低保户安装宽带或者旧电脑可行吗
- 学的自动化却对IT比较感兴趣。。感觉对自己的专业帮助不大,好苦恼,要不要继续是专精还是学点感兴趣的?
- 特斯拉|把小鹏P7开上高速,它竟然自己跑起来了!
- 企业信息化系统可否自己搭建
- 大学选修课该咋选兴趣还是那些容易过的
- 派出所|柳州民政局回应“市民无法证明自己是自己”:正帮助补领结婚证
