Это правильный способ инициализации вектора в CPP? - PullRequest
0 голосов
/ 11 апреля 2020

Я запускаю приведенную ниже программу на Dev-C ++ и не могу ее выполнить, поскольку она всегда выдает ошибку при компиляции программы.

#include<bits/stdc++.h>
using namespace std;
int main()
{
    vector<int> v2{2,3,4,5};
    for(int x : v2)
    {
        cout<<x<<" ";
    }
    return 0;
}

[Предупреждение] расширенные списки инициализаторов доступны только с -std = c ++ 11 или -std = gnu ++ 11

Это всегда дает мне ошибку Я просто хотел подтвердить, является ли этот тип инициализации вектора правильным? Или я делаю это неправильно? Я новичок в сообществе, извините. Если на этот вопрос уже был дан ответ, вы также можете перенаправить меня на предыдущий ответ.

1 Ответ

2 голосов
/ 11 апреля 2020

Избегайте использования <bits/stdc++.h>. Он не поддерживается некоторыми компиляторами и IDE, плюс он включает в себя всю библиотеку STL, которая не нужна.

Вместо этого используйте определенные c шаблоны, такие как <vector> в вашем случае, так как вы используете std::vector. Не забудьте также включить <iostream> для std::cout.

[Предупреждение] расширенные списки инициализаторов, доступные только с -std = c ++ 11 или -std = gnu ++ 11

Если ваш компилятор поддерживает C ++ до определенного стандарта c, вы можете установить стандарт, используя -std=standard, где 'standard' может быть c++11, c++14, c++17 или c++20, принимая во внимание последние версии стандарта C ++.

Ваш компилятор явно поддерживает c++11 (фактически, каждый компилятор в настоящее время поддерживает, как минимум), поэтому просто включите его при компиляции:

g++ -std=c++11 Filename.cpp -o Filename

Это скомпилирует ваш файл C ++ с использованием компилятора g ++ со стандартом C ++ 11 и создаст объектный файл исходного файла 'Filename. cpp'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...