const int NUMB = 4;
int n[] = {5,6,7,8};
// create a vector of strings using the n[] array
vector<int> partnums(n, n + NUMB);
Run Code Online (Sandbox Code Playgroud)
类函数vector name(src.begin,src.end)
使用源自src.begin并以scr.end结尾的源容器中的元素创建初始化的向量
根据这本书,
向量partnums声明为向量类型int,并使用来自n数组的元素进行初始化,从第一个数组元素n [0]开始,以最后一个数组元素结束, 位于位置n + NUMB.
我还是不明白."位于位置n + NUMB,索引是否从0开始?或者编译器知道此src.end指的是位置1(scr.begin),并从数组n中的那个位置开始计数,并计数到第四位)?
谢谢
C++标准库使用一种约定,'end'迭代器实际上是指一个元素超过结尾,所以在你的情况下'begin'将是第0个位置而'end'将是第4个(不是第三个)位置.
上面引用的混淆是n + NUMB被称为数组中的最后一个元素,这是不正确的.它是数组中最后一个元素之后的(虚构)元素,仅用作结束标记.
| 归档时间: |
|
| 查看次数: |
1905 次 |
| 最近记录: |