У меня есть 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.