1.当进行string对象和字符串字面值混合连接操作时,+操作符的左右操作数必须至少有一个是string类型的:

string s1= "hello";
sring s2="world";
string s3=s1 + ", "; //OK
string s4 = "hello" + ","; //error
string s5 = s1 + "," + "world"; //ok
string s6= "hello"+","+s2; //error

2.vector不是一种数据类型,而只是一个类模板,可用来定义任意多种数据类型。vector类型的每一种都指定了其保存元素的类型。因此,vector<int>和vector<string>都是数据类型。

3.使用size_type类型时,必须指出该类型是在哪里定义的。vector类型总是包括元素类型:

vector<int>::size_type   //OK
vector::size_type //error

4.下标操作部添加元素

初学C++的程序员可能会认为vector的下标操作可以添加元素,其实不然:

vector<int> ivec;
for (vector<int>::size_type ix= 0;ix != 10;++ix)
ivec[ix] = ix;

上述程序试图在ivec中插入10个新元素。但是,这里ivec是空的vector对象,而且下标只能用于获取已存在的元素。

这个循环的正确写法应该是:

 for (vector<int>::size_type ix=0;ix != 10;++ix)
ivec.push_back(ix);

必须是已存在的元素才能用于下标操作符进行索引。通过下标操作进行赋值时,不会添加任何元素。

5.每个容器类型还定义了一种名为const_iterator的类型,我们可以得到一个迭代器,它自身的值可以改变,但不能用来改变其所指向的元素的值。可以对迭代器进行自增以及使用解引用操作符来读取值,但不能对该元素值赋值。

6.difference_type表示两个迭代器对象的距离(iter1 - iter2 ),difference_type是 signed类型,因为减法运算可能产生负数的结果。该类型可以保证足够大以存储任何两个迭代器对象间的距离。iter1与iter2两者必须都指向同一vector中的元素,或者指向vector末端之后的下一个元素。

最新文章

  1. node.js 的事件驱动
  2. Java总结篇系列:Java多线程(一)
  3. UIToolbar 莫名黑线条 隐藏办法
  4. JavaScript----遇到的问题
  5. spring classpath &amp; classpath*
  6. Unity3d:如何让程序在失去焦点时,继续运行,而不是暂停呢?
  7. 仿知乎/途家导航栏渐变文字动画效果-b
  8. C复习手记(Day4)
  9. python-整理--sqlite数据库访问
  10. Java菜鸟学习笔记--数组篇(三):二维数组
  11. jquery的ajax提交form表单方式总结
  12. 读书笔记 effective c++ Item 43 了解如何访问模板化基类中的名字
  13. 花了一年时间开发的TTFEditor 字体编辑器
  14. 字符转码开源库libiconv目前还不支持64位
  15. Python进阶7--正则表达式
  16. 利用Java创建Windows服务
  17. label表单的关联性
  18. 【openjudge】【递推】例3.6 过河卒(Noip2002)
  19. 详解Android微信登录与分享
  20. 微信小程序组件 分页菜单点击请求

热门文章

  1. sublime安装配置
  2. python笔记十五(面向对象及其特性)
  3. Node.js HTTPS
  4. ThreadLocal 遇上线程池的问题及解决办法
  5. Java语言程序设计-助教篇
  6. OpenResty 操作cookies
  7. nginx时间设置解析函数
  8. Git 处理tag和branch的命令
  9. JAVA面向对象-----封装
  10. Cocos2d-x 添加iOS7默认分享/AirDrop