使用std :: begin(arr)而不仅仅使用arr作为指针的任何优点?

时间:2017-06-26 16:43:09

标签: c++ arrays pointers

标题说明了一切。我发现使用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);

0 个答案:

没有答案