Khi tôi lặp lại qua một số std::unordered_map
với phạm vi dựa trên vòng lặp hai lần, thứ tự có được đảm bảo bằng nhau không?Có phải cho (auto i: unordered_map) được đảm bảo có cùng thứ tự mỗi lần không?
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 += ");"
Trong ví dụ trên, chuỗi kết quả phải ở dạng đó. Do đó, điều quan trọng là cả hai lần, thứ tự lặp lại là như nhau.
INSERT INTO table (key1, key2, key3) VALUES (value1, value2, value3);
Điều này có được đảm bảo bằng C++ không?
Hãy cho tôi biết rằng bạn đang bảo vệ chống lại SQL injection ở đâu đó. –
@ D.Shawley Tôi không vào lúc này. Nhưng đó là về tiết kiệm của một trò chơi máy tính. Tôi mã hóa trò chơi và không có cách nào để tiêm SQL từ bên ngoài mã ứng dụng cả. – danijar
Tôi chỉ xoay quanh bất kỳ lúc nào mà tôi thấy xây dựng chuỗi SQL bằng chuỗi nối thô. –