当我使用范围 for 循环两次迭代 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);
在C++中是否有保证?