OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef BASE_SCOPED_VECTOR_H_ | 5 #ifndef BASE_SCOPED_VECTOR_H_ |
6 #define BASE_SCOPED_VECTOR_H_ | 6 #define BASE_SCOPED_VECTOR_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
47 | 47 |
48 std::vector<T*>& get() { return v; } | 48 std::vector<T*>& get() { return v; } |
49 const std::vector<T*>& get() const { return v; } | 49 const std::vector<T*>& get() const { return v; } |
50 void swap(ScopedVector<T>& other) { v.swap(other.v); } | 50 void swap(ScopedVector<T>& other) { v.swap(other.v); } |
51 void release(std::vector<T*>* out) { | 51 void release(std::vector<T*>* out) { |
52 out->swap(v); | 52 out->swap(v); |
53 v.clear(); | 53 v.clear(); |
54 } | 54 } |
55 | 55 |
56 void reset() { STLDeleteElements(&v); } | 56 void reset() { STLDeleteElements(&v); } |
| 57 void reserve(size_t capacity) { v.reserve(capacity); } |
57 void resize(size_t new_size) { v.resize(new_size); } | 58 void resize(size_t new_size) { v.resize(new_size); } |
58 | 59 |
59 // Lets the ScopedVector take ownership of |x|. | 60 // Lets the ScopedVector take ownership of |x|. |
60 iterator insert(iterator position, T* x) { | 61 iterator insert(iterator position, T* x) { |
61 return v.insert(position, x); | 62 return v.insert(position, x); |
62 } | 63 } |
63 | 64 |
64 iterator erase(iterator position) { | 65 iterator erase(iterator position) { |
65 delete *position; | 66 delete *position; |
66 return v.erase(position); | 67 return v.erase(position); |
(...skipping 13 matching lines...) Expand all Loading... |
80 iterator weak_erase(iterator first, iterator last) { | 81 iterator weak_erase(iterator first, iterator last) { |
81 return v.erase(first, last); | 82 return v.erase(first, last); |
82 } | 83 } |
83 private: | 84 private: |
84 std::vector<T*> v; | 85 std::vector<T*> v; |
85 | 86 |
86 DISALLOW_COPY_AND_ASSIGN(ScopedVector); | 87 DISALLOW_COPY_AND_ASSIGN(ScopedVector); |
87 }; | 88 }; |
88 | 89 |
89 #endif // BASE_SCOPED_VECTOR_H_ | 90 #endif // BASE_SCOPED_VECTOR_H_ |
OLD | NEW |