train_ngram_model uses both the std and std::tr1 namespaces. Since C++ >= 11 has shared_ptr in the std namespace, uses of shared_ptr were ambiguous. This change makes train_ngram_model use std::shared_ptr. While at it, also replace uses of TR1's functional and unordered_map.
train_ngram_model uses both the std and std::tr1 namespaces. Since C++ >= 11 has shared_ptr in the std namespace, uses of shared_ptr were ambiguous. This change makes train_ngram_model use std::shared_ptr. While at it, also replace uses of TR1's functional and unordered_map.