### 134. vector constructors over specified

**Section:** 26.3.11.2 [vector.cons] **Status:** TC1
**Submitter:** Howard Hinnant **Opened:** 1999-03-06 **Last modified:** 2016-02-10

**Priority: **Not Prioritized

**View all issues with** TC1 status.

**Discussion:**

The complexity description says: "It does at most 2N calls to the copy constructor
of T and logN reallocations if they are just input iterators ...".

This appears to be overly restrictive, dictating the precise memory/performance
tradeoff for the implementor.

**Proposed resolution:**

Change 26.3.11.2 [vector.cons], paragraph 1 to:

-1- Complexity: The constructor template <class
InputIterator> vector(InputIterator first, InputIterator last)
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.

**Rationale:**

"at most 2N calls" is correct only if the growth factor
is greater than or equal to 2.