Using absl collections nullptr instead of NULL where needed.
diff --git a/cpp/src/phonenumbers/shortnumberinfo.cc b/cpp/src/phonenumbers/shortnumberinfo.cc
index 2486a4f..8e5d12d 100644
--- a/cpp/src/phonenumbers/shortnumberinfo.cc
+++ b/cpp/src/phonenumbers/shortnumberinfo.cc
@@ -45,8 +45,8 @@
 ShortNumberInfo::ShortNumberInfo()
     : phone_util_(*PhoneNumberUtil::GetInstance()),
       matcher_api_(new RegexBasedMatcher()),
-      region_to_short_metadata_map_(new map<string, PhoneMetadata>()),
-      regions_where_emergency_numbers_must_be_exact_(new set<string>()) {
+      region_to_short_metadata_map_(new absl::flat_hash_map<string, PhoneMetadata>()),
+      regions_where_emergency_numbers_must_be_exact_(new absl::flat_hash_set<string>()) {
   PhoneMetadataCollection metadata_collection;
   if (!LoadCompiledInMetadata(&metadata_collection)) {
     LOG(DFATAL) << "Could not parse compiled-in metadata.";
@@ -71,7 +71,7 @@
   if (it != region_to_short_metadata_map_->end()) {
     return &it->second;
   }
-  return NULL;
+  return nullptr;
 }
 
 namespace {
@@ -273,7 +273,7 @@
   phone_util_.GetNationalSignificantNumber(number, &national_number);
   for (const auto& region_code_it : region_codes) {
     const PhoneMetadata* phone_metadata = GetMetadataForRegion(region_code_it);
-    if (phone_metadata != NULL &&
+    if (phone_metadata != nullptr &&
         MatchesPossibleNumberAndNationalNumber(*matcher_api_, national_number,
                                                phone_metadata->short_code())) {
       // The number is valid for this region.
@@ -302,7 +302,7 @@
   if (!phone_metadata) {
     return "";
   }
-  const PhoneNumberDesc* desc = NULL;
+  const PhoneNumberDesc* desc = nullptr;
   switch (cost) {
     case TOLL_FREE:
       desc = &(phone_metadata->toll_free());
@@ -318,7 +318,7 @@
       // the other cost categories.
       break;
   }
-  if (desc != NULL && desc->has_example_number()) {
+  if (desc != nullptr && desc->has_example_number()) {
     return desc->example_number();
   }
   return "";
diff --git a/cpp/src/phonenumbers/shortnumberinfo.h b/cpp/src/phonenumbers/shortnumberinfo.h
index 856fa52..db54b48 100644
--- a/cpp/src/phonenumbers/shortnumberinfo.h
+++ b/cpp/src/phonenumbers/shortnumberinfo.h
@@ -26,6 +26,8 @@
 
 #include "phonenumbers/base/basictypes.h"
 #include "phonenumbers/base/memory/scoped_ptr.h"
+#include "absl/container/flat_hash_set.h"
+#include "absl/container/flat_hash_map.h"
 
 namespace i18n {
 namespace phonenumbers {
@@ -179,12 +181,12 @@
   const scoped_ptr<const MatcherApi> matcher_api_;
 
   // A mapping from a RegionCode to the PhoneMetadata for that region.
-  scoped_ptr<map<string, PhoneMetadata> >
+  scoped_ptr<absl::flat_hash_map<string, PhoneMetadata> >
       region_to_short_metadata_map_;
 
   // In these countries, if extra digits are added to an emergency number, it no
   // longer connects to the emergency service.
-  scoped_ptr<set<string> >
+  scoped_ptr<absl::flat_hash_set<string> >
       regions_where_emergency_numbers_must_be_exact_;
 
   const i18n::phonenumbers::PhoneMetadata* GetMetadataForRegion(