标签:nbsp out cap ace 提升 如何 初始 ima push
(1)练习9.41 编写程序,从一个vector<char>初始化一个string
(2)练习9.42假定你希望每次读取一个字符存入一个string中,而且知道最少需要读取100个字符,应该如何提升性能?
1 #pragma
2 #include "pch.h"
3 #include <iostream>
4 #include<vector>
5 #include<string>
6 using namespace std;
7 void fun1(int &a) {
8 a = 10;
9 }
10 int main(void)
11 {
12 vector<char> vec = {‘a‘,‘b‘,‘c‘,‘d‘,‘d‘, ‘d‘, ‘d‘, ‘d‘, ‘d‘, ‘d‘, ‘d‘, ‘d‘, ‘d‘, ‘d‘, ‘d‘, ‘d‘};
13 string str(vec.begin(), vec.begin() + 1);
14 cout<<"1 element‘s capacity:"<<str.capacity();
15 cout << endl;
16 str.push_back(*(vec.begin() + 1));
17 cout<<"two elements‘s capacity:"<<str.capacity();
18 for (int i = 0; i < 14; i++) {
19 str.push_back(*(vec.begin() +2+i));
20 }
21 cout << endl;
22 cout << "15 elments‘s capacity:" << str.capacity();
23 }
string的扩容方式已两倍扩增,因为已知道至少100个字符,只需要首次扩容就指定容量大于100就可以了,当然你不想浪费空间的话就不要指定为201,这取决于你实际的插入次数,但是你至少能避免掉前100次插入的扩容操作。
使用reserve()函数扩容。
4.一次做完C++primer 5th 练习9.41和9.42 关于类似于vector扩容方式的理解
标签:nbsp out cap ace 提升 如何 初始 ima push
原文地址:https://www.cnblogs.com/Royzzzzz/p/11869980.html