Когда я перебираю по std::unordered_map
с диапазоном, основанным на цикле в два раза, гарантирован ли порядок равным?
std::unordered_map<std::string, std::string> map;
std::string query = "INSERT INTO table (";
bool first = true;
for(auto i : map)
{
if(first) first = false;
else query += ", ";
query += i.first;
}
query += ") ";
query += "VALUES (";
first = true;
for(auto i : map)
{
if(first) first = false;
else query += ", ";
query += i.second;
}
query += ");"
В приведенном выше примере результирующая строка должна быть в этой форме. Поэтому важно, чтобы оба раза, порядок итераций один и тот же.
INSERT INTO table (key1, key2, key3) VALUES (value1, value2, value3);
Гарантируется ли это на С++?