2013-01-01 29 views
6

Có cách nào dễ dàng hơn để kiểm tra xem cuộc gọi std::unordered_map::insert đã thành công hơn là viết mã khối khổng lồ này không?hình thức đơn giản hơn của std :: unordered_map :: insert?

std::pair< T1, T2 > pair(val1, val2); 
std::pair< std::unordered_map< T1, T2 >::const_iterator, bool> ret = 
_tileTypes.insert(pair); 
if(!ret.second) { 
    // insert did not succeed 
} 

Trả lời

12

Làm thế nào về chỉ:

if(!_tileTypes.insert(std::make_pair(val1, vla2)).second) { 
    // insert did not succeed 
} 
11
if (!_tileTypes.insert(pair).second) 

?

Ngoài ra, typedef có thể hữu ích để dọn dẹp loại thứ này.

Ngoài ra, nếu bạn đang sử dụng C++ 11, sau đó bạn có thể sử dụng từ khóa auto để suy ra các loại:

+0

Và nếu bạn cần truy cập để '.first' sau khi kiểm tra' .second', bạn có thể sử dụng 'auto' để đơn giản hóa kiểu giá trị trả về dài. –

Các vấn đề liên quan