Tôi có một std :: map, và tôi muốn thêm một khóa hợp lệ để lặp lại nó sau này, nhưng không đưa ra bất kỳ giá trị nào (nó sẽ được đưa ra sau này trong quá trình lặp lại).Cách thêm khóa hợp lệ mà không chỉ định giá trị cho std :: map?
Đây là cách tôi làm điều đó cho bây giờ:
std::vector<std::string> valid_keys;
//Fill... Then :
std::map<std::string, float> map;
for(size_t i = 0 ; i < valid_keys.size() ; ++i) {
/*I don't want to do that because in fact I don't use a float type*/
map[valid_keys[i]] = 0.f; //<-
}
//Using :
for(std::map<std::string, float>::iterator it = map.begin() ; it != map.end() ; ++it) {
it->second = 0; //Dummy
}
Làm thế nào tôi có thể làm điều đó, xin vui lòng?
Cảm ơn bạn.
"/ * Tôi không muốn làm điều đó bởi vì trên thực tế tôi không sử dụng một loại float * /" nhưng bạn xác định 'std :: map' tại sao xác định nó với một nổi nếu bạn không muốn nó lưu trữ nổi? –
Nó làm cho nó thú vị hơn để cố gắng tìm ra những vấn đề thực sự là bằng cách làm xáo trộn nó với herrings đỏ. Nếu nó là quá dễ dàng thì bạn sẽ không đánh giá cao những bí ẩn. –