| Index: base/stl_util.h
 | 
| diff --git a/base/stl_util.h b/base/stl_util.h
 | 
| index 89a53b070ef515cf81d584098e7aace8ed2ba201..e937d2f3ed9157d433cc62fb71958bd9c71cd6d9 100644
 | 
| --- a/base/stl_util.h
 | 
| +++ b/base/stl_util.h
 | 
| @@ -90,6 +90,14 @@ void STLDeleteContainerPairSecondPointers(ForwardIterator begin,
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +// Counts the number of instances of val in a container.
 | 
| +template <typename Container, typename T>
 | 
| +typename std::iterator_traits<
 | 
| +    typename Container::const_iterator>::difference_type
 | 
| +STLCount(const Container& container, const T& val) {
 | 
| +  return std::count(container.begin(), container.end(), val);
 | 
| +}
 | 
| +
 | 
|  // To treat a possibly-empty vector as an array, use these functions.
 | 
|  // If you know the array will never be empty, you can use &*v.begin()
 | 
|  // directly, but that is undefined behaviour if |v| is empty.
 | 
| @@ -195,6 +203,14 @@ bool ContainsKey(const Collection& collection, const Key& key) {
 | 
|    return collection.find(key) != collection.end();
 | 
|  }
 | 
|  
 | 
| +// Test to see if a collection like a vector contains a particular value.
 | 
| +// Returns true if the value is in the collection.
 | 
| +template <typename Collection, typename Value>
 | 
| +bool ContainsValue(const Collection& collection, const Value& value) {
 | 
| +  return std::find(collection.begin(), collection.end(), value) !=
 | 
| +      collection.end();
 | 
| +}
 | 
| +
 | 
|  namespace base {
 | 
|  
 | 
|  // Returns true if the container is sorted.
 | 
| 
 |