已有17人关注
vector实例结果与vs2019运行结果不同而且上面给的返回最多容量函数与下面实例中不同
发表在C++图书答疑 2022-05-09 《C++从入门到精通(第3版)》第13章 STL标准模板库 313页-315页
是否精华
版块置顶:
#include<iostream>
#include<iomanip>
#include<vector>
#include<tchar.h>
using namespace std;
int main()
{
	vector<int>v1, v2;
	v1.resize(10);	//手动分配空间
	cout << "v1容量" << v1.capacity() << endl;
	v2.resize(10);	
	v1 = vector<int>(8, 7);
	int arrary[8] = { 1,2,3,4,5,6,7,8 };
	v2 = vector<int>(arrary, arrary + 8);
	cout << "v1容量" << v1.capacity() << endl;
	cout << "v1当前各项:" << endl;
	for (decltype(v2.size())i = 0; i < v1.size(); i++)
		cout << setw(2) << v1[i];
	cout << endl;
	cout << "v2容量" << v2.capacity() << endl;
	cout << "v2当前各项:" << endl;
	for (vector<int>::size_type i = 0; i < v1.size(); i++)
		cout << setw(2) << v2[i];
	cout << endl;
	v1.resize(0);
	cout << "v1的容器通过resize函数变成0" << endl;
	if (!v1.empty())	cout << "v1容量" << v1.capacity() << endl;
	else				cout<<"v1是空的"<<endl;
	cout << "将v1容量扩展为8" << endl;
	v1.resize(8);
	cout << "v1当前各项:" << endl;
	for (decltype(v1.size())i = 0; i < v1.size(); i++)
		cout << setw(2) << v1[i];
	cout << endl;
	v1.swap(v2);
	cout << "v1与v2swap了" << endl;
	cout << "v1容量" << v1.capacity() << endl;
	cout << "v1当前各项:" << endl;
	for (decltype(v1.size())i = 0; i < v1.size(); i++)
		cout << setw(2) << v1[i];
	cout << endl;
	v1.push_back(3);
	cout << "从v1后面加入了元素3" << endl;
	cout<<"v1容量:" << v1.capacity() << endl;
	for (decltype(v1.size())i = 0; i < v1.size(); i++)
		cout << setw(2) << v1[i];
	cout << endl;
	v1.erase(v1.end()-2);
	cout << "删除了倒数第二个元素" << endl;
	cout << "v1容量" << v1.capacity() << endl;
	cout << "当前各项:" << endl;
	for (decltype(v1.size())i = 0; i < v1.size(); i++)
		cout << setw(2) << v1[i];
	cout << endl;
	v1.pop_back();
	cout << "通过栈操作pop_back释放最后的元素" << endl;
	cout << "v1当前各项:" << endl;
	cout << "v1容量" << v1.capacity() << endl;
	for (vector<int>::size_type i = 0; i < v1.size(); i++)
		cout << setw(2) << v1[i];
	cout << endl;
	return 0;
}//按照书上的敲


分享到:
精彩评论 1
game99258
学分:2266 LV10
2022-08-23
沙发

学习

首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照