Подскажите, пжлст, почему итератор std::vector и C-шный массив ведут себя по-разному при вычитании? Казалось бы, вектор должен обладать обратной совместимостью с сишными массивами?
Код вот:
#include <vector>
#include <algorithm>
#include <utility>
#include <iostream>
using namespace std;
int main(int argc, char* argv[]) {
pair<int, int> p1 = make_pair(10, 11);
pair<int, int> p2 = make_pair(20, 21);
pair<int, int> p3 = make_pair(30, 31);
pair<int, int> p4 = make_pair(40, 41);
pair<int, int> p5 = make_pair(50, 51);
vector< pair<int, int> > v(5);
v.push_back(p1);
v.push_back(p2);
v.push_back(p3);
v.push_back(p4);
v.push_back(p5);
cout << v.end() - v.begin() << "\n";
cout << distance(v.begin(), v.end()) << "\n\n";
pair<int, int> arr[] = {p1, p2, p3, p4, p5};
pair<int, int>* parrEnd = arr + sizeof(arr)/sizeof(pair<int, int>);
cout << parrEnd - arr << "\n";
cout << distance(arr, parrEnd) << "\n";
return 0;
}
Ответ на:
комментарий
от placement_new
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous2
Ответ на:
комментарий
от placement_new
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум проверка на сушесвования vector<T>::iterator (2007)
- Форум Почему выводит все нули? Вопрос про копирование и итераторы в c++ (2017)
- Форум Чем отличается код c++ с s.erase и без него?И откуда там нули во втором случае? (2017)
- Форум функция reverse c++ (2017)
- Форум чем можно заменить min_element/max_element с условием выборки? (2020)
- Форум ввод/вывод вектора указателей (2013)
- Форум [C++] Особенности реализации std::vector (2010)
- Форум Не компилируется программа :( (2008)
- Форум размер STL вектора (2003)
- Форум передать вектор в C++11 (2016)