У меня есть std::vector
с элементами n
. Теперь мне нужно передать указатель на вектор, который имеет последние элементы n-1
для функции.
Например, мой vector<int> foo
содержит (5,2,6,87,251)
. Функция принимает vector<int>*
, и я хочу передать ей указатель на (2,6,87,251)
.
Могу ли я (безопасно) взять итератор ++foo.begin()
, преобразовать его в указатель и передать его функции? Или используйте &foo[1]
?
ОБНОВЛЕНИЕ: Люди предполагают, что я меняю свою функцию на использование итератора вместо указателя. Это кажется невозможным в моей ситуации, так как функция, о которой я упомянул, является функцией find
unordered_set<std::vector*>
. Итак, в этом случае копирование элементов n-1
из foo
в новый вектор и вызов find
с указателем на это единственный вариант? Очень неэффективно! Это, как Шлемиэль, художник, тем более, что я должен запросить множество подмножеств: последние n-1
, затем n-2
и т.д. Элементы и посмотреть, находятся ли они в unordered_set
.