请教众高手一个小儿科问题请不要见笑:
书上说:定义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) |