-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcapacity.html
More file actions
99 lines (83 loc) · 3.29 KB
/
capacity.html
File metadata and controls
99 lines (83 loc) · 3.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<!-- Mirrored from cppreference.com/cppstring/capacity.html by HTTrack Website Copier/3.x [XR&CO'2004], Tue, 22 Jan 2008 06:24:51 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=iso-8859-1"><!-- /Added by HTTrack -->
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">
<title>capacity</title>
<link href="../cppreference.css" rel="stylesheet" type="text/css">
<link href="../prettify.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="../prettify.js"></script>
</head>
<body onload="prettyPrint()">
<table>
<tr>
<td>
<div class="body-content">
<div class="header-box">
<a href="../index-2.html">cppreference.com</a> > <a href=
"index.html">C++ Strings</a> > <a href=
"capacity.html">capacity</a>
</div>
<div class="name-format">
capacity
</div>
<div class="syntax-name-format">
Syntax:
</div>
<pre class="syntax-box">
#include <string>
<strong>size_type</strong> capacity() const;
</pre>
<p>The capacity() function returns the number of elements that the
string can hold before it will need to allocate more space.</p>
<p>For example, the following code uses two different methods to set
the capacity of two vectors. One method passes an argument to the
constructor that suggests an initial size, the other method calls the
reserve function to achieve a similar goal:</p>
<pre class="prettyprint">
vector<int> v1(10);
cout << "The capacity of v1 is " << v1.capacity() << endl;
vector<int> v2;
v2.reserve(20);
cout << "The capacity of v2 is " << v2.capacity() << endl;
</pre>
<p>When run, the above code produces the following output:</p>
<pre class="prettyprint">
The capacity of v1 is 10
The capacity of v2 is 20
</pre>
<p>C++ containers are designed to grow in size dynamically. This
frees the programmer from having to worry about storing an arbitrary
number of elements in a container. However, sometimes the programmer
can improve the performance of her program by giving hints to the
compiler about the size of the containers that the program will use.
These hints come in the form of the <a href=
"reserve.html">reserve</a>() function and the constructor used in the
above example, which tell the compiler how large the container is
expected to get.</p>
<p>The capacity() function runs in <a href=
"../complexity.html">constant time</a>.</p>
<div class="related-name-format">
Related topics:
</div>
<div class="related-content">
<a href="reserve.html">reserve</a><br>
<a href="resize.html">resize</a><br>
<a href="size.html">size</a>
</div>
</div>
</td>
<script src="../../www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-2828341-1";
urchinTracker();
</script>
</tr>
</table>
</body>
<!-- Mirrored from cppreference.com/cppstring/capacity.html by HTTrack Website Copier/3.x [XR&CO'2004], Tue, 22 Jan 2008 06:24:51 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=iso-8859-1"><!-- /Added by HTTrack -->
</html>