С++ "std::string не объявлен" error

Я искал ответ на сайтах, но не смог найти ответа, который помог мне.

У меня есть код, который использует строки, когда я пытался (например, предложил) добавить эти строки:

using namespace std;
using std::string;
#include <string>

Я попытался использовать каждого из них отдельно, и я попробовал их все вместе. Лучшей ситуацией было то, что все ошибки строки исчезли, но у меня была другая странная ошибка в строке "using std::string", и ошибка была: std::string не была объявлена. Есть идеи? Спасибо, ребята.

Ответ 1

Сначала поместите #include <string>.

Избегайте утверждений using в заголовках, поскольку вы потенциально можете принести всевозможные вещи во многие единицы компиляции. using std::string, возможно, приемлемо в заголовке, но using namespace std , конечно, не, поскольку это вызовет столько загрязнений пространства имен во всех единицах компиляции. Пространство имен std постоянно расширяется (смотрите все новые материалы на С++), поэтому вы не хотите исправлять множество ошибок при обновлении своего компилятора.

Ответ 2

include должен появиться перед using

#include <string>
using namespace std;
//using std::string; <-- Needless