Я просто создал массив a
, используя класс контейнера. Однако IntelliSense VScode показывает ошибку. Вот реализация сортировки выбором.
содержимое файла c_cpp_properties.json
следующее
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"windowsSdkVersion": "10.0.16299.0",
"compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.13.26128/bin/Hostx64/x64/cl.exe",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "msvc-x64"
}
],
"version": 4
}
код компилируется и успешно запускается. Как исправить неправильную ошибку IntelliSense?
Вам, вероятно, нужно #include <array>
помнить, что intellisense — это другой компилятор, чем тот, который на самом деле компилирует ваш код.
Я включил заголовок bits/stdc++.h
. позвольте мне отредактировать вопрос.
Прочтите Почему я не должен #include <bits/stdc++.h>?
Я понимаю последствия включения bits/stdc++.h
. Однако я получаю ту же ошибку для макроса print
, который я определил. почему это?
"Я понимаю последствия" *спрашивает о последствиях*
Я попытался вставить ваш снимок экрана в свою IDE, но моя IDE не смогла скомпилировать изображение. Пожалуйста, отредактируйте свой пост с текстом из IDE (подсказка: выделите мышью, скопируйте в буфер обмена, затем вставьте в свой вопрос).
Компилятор, используемый для IntelliSense, может не иметь этого заголовка.
читать: почти наверняка нет этого заголовка
@ThomasMatthews вор :P
также стоп using namespace std
Да, я тоже это знаю.
Прекратите включать bits/stdc++.h
.
Это заголовок реализации для некоторых цепочек инструментов. Это не для вас.
Вместо этого включите правильный заголовок:
#include <array>
(Вероятно, ваш механизм Intellisense не имеет доступа к этому внутреннему заголовку с платформ Linux.)
Кстати, вам не разрешено выбирать имена, начинающиеся с двух символов подчеркивания. Так что прекрати и это.
да. Компилятор, который использует intellisense, не имеет bits/stdc++.h
и в том числе array
исправил это. Однако удаление __ из макроса не устранило ошибку
Я не говорил, что удаление __
исправит ошибку, я сказал, что вам не разрешено его использовать. Он может сломаться в будущем. Честно говоря, это должно было быть освещено в вашей книге :/
@drescherjm да. Так и было. Спасибо. Я починю это.
Пожалуйста, включите минимальный воспроизводимый пример как текст в текст вопроса. Изображения крошечных фрагментов не учитывают важный контекст и не позволяют нам воспроизвести вашу ошибку. В этом случае важно знать, действительно ли вы сделали
#include <array>
, и иметь оператор using, чтобы избежать необходимостиstd::
квалифицироватьarray
.