标题说明了一切。我发现使用vec.begin()
和&vec[0]
之间存在差异,因为前者返回std::vector<T>::iterator
,后者返回指向T
类型对象的指针。我正在阅读的书(The C ++ Primer,5th Edition)建议您使用std::begin()
标头中的iterator
函数来获取数组的第一个元素。但是,由于此函数也只返回指针,因此不能使用变量名作为指向第一个元素的指针更快/更有效吗?
修改此问题与标记不重复。我不是要求容器成员方法和C-Library中的方法之间的区别。让我澄清一下我的问题:
int numbers[] = {0, 1, 2};
// is there any major difference between
int first = *numbers;
// and
int first1 = *std::begin(numbers);