Как memset на 2d вектор

Итак, у меня есть 2D вектор, которому я хочу присвоить значение num, я хочу увидеть, который лучше выполняет заполнение по сравнению с memset() как n ++ C++, у меня фактически возникают проблемы с установкой правильного синтаксиса кода, поскольку я всегда получаю ошибку сегментации, когда Я делаю это.

vector<vector<int>> matrix(10, vector<int>(10000000));
int main()
{
    int num;
    cin >> num;
    int i = 0;
    for (auto &i : matrix)
    {
        fill(i.begin(), i.end(), num); 
    }
    return 0;
}

1 ответ

Как вы можете использовать memset заstd::vector<int>Я не думаю, что это будет такая хорошая идея, и это довольно уродливо сstd::vector, Да, вы можете использоватьstd::fill как вы используете его, но в вашем случае есть более простой способ, используйте std::vector конструктор. Как это:

int main()
{
    int num;
    std::cin >> num;
    std::vector<std::vector<int>> matrix(10, std::vector<int>(10000000, num));
    return 0;
}
Другие вопросы по тегам