Предположим, что n большое целое число, как инициализировать вектор с {1,2, …, n} без цикла в C ++? Благодарю.
Так просто, как это:
std::vector<int> v( 123 );
std::iota( std::begin( v ), std::end( v ), 1 );
Если N
известен во время компиляции, вы можете определить вспомогательную функцию следующим образом:
#include<utility>
#include<vector>
template<std::size_t... I>
auto gen(std::index_sequence<I...>) {
return std::vector<std::size_t>{ I... };
}
int main() {
auto vec = gen(std::make_index_sequence<3>());
}