#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;
}
STL的练习
最新推荐文章于 2021-07-10 22:40:23 发布