Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2350314
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:07:24

请教众高手一个小儿科问题请不要见笑:
书上说:定义vector可以有四种形式
(1) cector a(10);
(2) vector b(10,1);
(3) vector c(b);
(4) vector d(b.begin(),b.begin()+3);
说:第四种形式定义了其值依次为b向量中第0到第2个(共3个)元素的向量。b.begin()  b.end()是表示向量的起始元素位置和最后一个元素之外的元素位置。怎样理解?
还有:
int a[7]={1,2,5,3,7,9,8,};
vector va(a,a+7);
其中a+7不是表示a[7]吗?这样不是下标越界了吗?怎么回事?
我这样理解是不是正确:
认为定义的时候如:第四种定义和vector va(a,a+7)。在定义的时候第二个参数表示的总是个数“(a+7)-a=7 ” 个,而调用地时候最大的下标是将定义时的第二个参数减一。就像数组一样?int a[8]的最大下标是7 而vector d(b.begin(),b.begin()+3);的最大下标是2,vector va(a,a+7);的最大下标是6。但是这样理解的话,b.begin()  b.end()是表示向量的起始元素位置和最后一个元素之外的元素位置。又怎样理解呢?
请高手指教,小弟谢谢了!

--------------------next---------------------

阅读(1091) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~