Я новичок в C++ и немного помог с моей программой сравнить два файла XML. Это код, который у меня есть:Неизвестная строка имени типа C++
#include "pugixml.hpp"
#include <iostream>
#include <unordered_map>
int main() {
pugi::xml_document doca, docb;
std::map<string, pugi::xml_node> mapa, mapb;
if (!doca.load_file("a.xml") || !docb.load_file("b.xml"))
return 1;
for (auto& node: doca.child("site_entries").children("entry")) {
const char* id = node.child_value("id");
mapa[new std::string(id, strlen(id))] = node;
}
for (auto& node: docb.child("site_entries").children("entry"))
const char* idcs = node.child_value("id");
std::string id = new std::string(idcs, strlen(idcs));
if (!mapa.erase(id)) {
mapb[id] = node;
}
}
}
Я, кажется, получаю много ошибок при попытке скомпилировать его.
Первый я получаю это:
src/main.cpp:10:14: error: unknown type name 'string'; did you mean 'std::string'?
std::map<string, pugi::xml_node> mapa, mapb;
~~~~~^~~
Из того, что я понимаю, я указал это правильно. Должен ли я изменить его, как он просит, или что-то еще пропустить?
вы должны включить использовать зЬй :: строку –
userbb
Вам нужно указать его в качестве станда :: строку, если вы хотите использовать строку C++ станда имен. – KostasT
или un-recommanded 'using namesapce std;'. – Jarod42