STL的练习

#include "main.h"

//using namespace std;
int main()
{
	//***********************************   顺序容器:vector   ******************************************
	/*
	std::vector<int> iivec(2,0);
	std::vector<int> ivec(5,1);


	//std::cout << "赋值:" << std::endl;
	ivec[0] = 0;
	ivec[1] = 1;
	ivec[2] = 2;
	ivec[3] = 3;
	ivec[4] = 4;

	//std::cout << "front:" << ivec.front() << std::endl;							 //ivec中的首元素
	//std::cout << "back:" << ivec.back() << std::endl;								 //ivec中的尾元素
	//std::cout << "第2个元素:" << ivec.front()+2 << std::endl;						 //ivec第2个元素
	//std::cout << "第2个元素:" << ivec[2] << std::endl;							//ivec第2个元素

	//std::cout << "大小:" << std::endl;
	//std::cout << "size:" << ivec.size() << std::endl;                              //ivec中元素的数目
	//std::cout << "max_size:" << ivec.max_size() << std::endl;                      //ivec中能保存的最大元素数目
	//ivec.resize(3);																 //调整ivec的大小为3个元素
	//ivec.resize(8);																 //调整ivec的大小为8个元素
	//ivec.resize(8,0);																 //调整ivec的大小为8个元素,任何新添加的元素都初始化为0

	//std::cout << "容量:" << std::endl;
	//std::cout << "capacity:" << ivec.capacity() << std::endl;						 //不重新分配内存空间的话,ivec可以保存多少元素
	//ivec.reserve(10);


	//std::cout << "交换:" << std::endl;
	//ivec.swap(iivec);																//交换ivec和iivec的元素
	//swap(ivec,iivec);																//与上同理

	//std::cout << "添加:" << std::endl;
	//ivec.insert(ivec.begin(),0);													//头部添加一个值为0的元素
	//ivec.insert(ivec.begin(),3,4);												//头部添加3个值为4的元素
	//ivec.insert(ivec.begin()+2,3,4);												//头部开始数起的第二位添加3个值为4的元素
	//ivec.insert(ivec.end(),4,9);													//尾部添加4个值为9的元素
	//ivec.push_back(2);															//尾部添加一个值为2的元素

	//auto &ii = iivec.back();														//获得iivec指向最后一个元素的引用
	//ivec.insert(ivec.begin(),1,ii);												//该上面取得的应用添加到ivec容器的头部

	//std::cout << "删除:" << std::endl;
	//ivec.pop_back();																//删除ivec中尾元素。若ivec为空,则函数行为未定义。函数返回void
	//ivec.erase(ivec.begin());														//删除指定的迭代器所指的元素,并返回一个指向被删元素之后元素的迭代器
	//ivec.erase(ivec.begin(),ivec.begin()+2);
	//ivec.clear();																	//删除ivec中的所有元素。返回void

	//std::cout << "iivec赋值给ivec:" << std::endl;
	//ivec = iivec;																	//iivec赋值给ivec

	//iivec遍历
	//for(auto it1 = iivec.begin();it1 != iivec.end();it1++)
	//	std::cout << *it1 << std::endl;
	//std::cout << "iivec's size:" << iivec.size() << std::endl;

	//ivec遍历
	for(auto it1 = ivec.begin();it1 != ivec.end();it1++)
		std::cout << *it1 << std::endl;
	std::cout << "ivec's size:" << ivec.size() << std::endl;
	*/

	//***********************************   顺序容器:list   ******************************************
	//std::list<std::string> slist = {"aaa","bbb","ccc"};

	//std::cout << "front:" << slist.front() << std::endl;
	//std::cout << "back:" << slist.back() << std::endl;
	
	//std::cout << "size:" << slist.size() << std::endl;
	//std::cout << "max_size:" << slist.max_size() << std::endl;

	//slist.resize(3);
	//slist.resize(8);
	//slist.resize(8,0);

	//std::cout << "empty" << slist.empty() << std::endl;
	//slist.insert(slist.end(), "ddd");

	//slist.erase(slist.begin());
	//slist.clear();

	//slist遍历
	//for (auto it1 = slist.begin(); it1 != slist.end(); it1++)
	//	std::cout << *it1 << std::endl;
	//std::cout << "slist's size:" << slist.size() << std::endl;

	//***********************************    关联容器:map   ******************************************
	//经典例子:统计每个单词在输入中出现的次数
	/*
	std::map<std::string, int> word_count;
	std::string word;
	while (std::cin >> word)
		++word_count[word];
	for (const auto &w : word_count)
		std::cout << w.first << "occurs" << w.second << ((w.second > 1) ? "times" : "time") << std::endl;
	

	std::map<std::string,std::string> mmap;

	//添加
	mmap.insert(std::pair<std::string, std::string>("sqy", "aaa"));
	mmap["zxm"] = "bbb";

	//查找
	auto iter = mmap.find("zxm");
	if (iter != mmap.end())
		std::cout << "Find, the value is" << iter->second << std::endl;
	else
		std::cout << "Do not Find" << std::endl;

	//删除
	//迭代器刪除
	iter = mmap.find("zxm");
	mmap.erase(iter);

	//用关键字刪除
	int n = mmap.erase("zxm");//如果刪除了會返回1,否則返回0
	std::cout << n << std::endl;

	//用迭代器范围刪除 : 把整個map清空
	mmap.erase(mmap.begin(), mmap.end());
	//等同於mmap.clear() 
	mmap.clear();
	*/
	while (1);
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值