reserve.pass.cpp revision b64f8b07c104c6cc986570ac8ee0ed16a9f23976
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//===----------------------------------------------------------------------===// 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The LLVM Compiler Infrastructure 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This file is dual licensed under the MIT and the University of Illinois Open 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Source Licenses. See LICENSE.TXT for details. 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//===----------------------------------------------------------------------===// 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// <unordered_map> 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 12a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// template <class Key, class T, class Hash = hash<Key>, class Pred = equal_to<Key>, 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// class Alloc = allocator<pair<const Key, T>>> 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// class unordered_map 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1658e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch// void reserve(size_type n); 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <unordered_map> 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string> 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <cassert> 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void test(const std::unordered_map<int, std::string>& c) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 24a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) assert(c.size() == 4); 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) assert(c.at(1) == "one"); 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) assert(c.at(2) == "two"); 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) assert(c.at(3) == "three"); 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) assert(c.at(4) == "four"); 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 31f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)int main() 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 33f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) { 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef std::unordered_map<int, std::string> C; 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef std::pair<int, std::string> P; 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) P a[] = 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 384e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) P(1, "one"), 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) P(2, "two"), 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) P(3, "three"), 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) P(4, "four"), 4258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) P(1, "four"), 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) P(2, "four"), 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) C c(a, a + sizeof(a)/sizeof(a[0])); 464e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) test(c); 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) assert(c.bucket_count() >= 5); 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) c.reserve(3); 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) assert(c.bucket_count() == 5); 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test(c); 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) c.max_load_factor(2); 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) c.reserve(3); 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) assert(c.bucket_count() >= 2); 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test(c); 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) c.reserve(31); 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) assert(c.bucket_count() == 17); 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) test(c); 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)