```
explicit vector(const Allocator&) noexcept;
```

```
explicit vector(size_type n, const Allocator& = Allocator());
```

```
vector(size_type n, const T& value,
const Allocator& = Allocator());
```

```
template<class InputIterator>
vector(InputIterator first, InputIterator last,
const Allocator& = Allocator());
```

Complexity:
Makes only N
calls to the copy constructor of
T
(where N
is the distance between
first
and
last)
and no reallocations if iterators first and last are of forward, bidirectional, or random access categories.

It makes order
N
calls to the copy constructor of
T
and order
logN
reallocations if they are just input iterators.