20170807
来源:互联网 发布:免费tk域名申请 编辑:程序博客网 时间:2024/06/06 04:25
///**************************************************////* STL--Vector学习 *////**************************************************///#include <iostream> //#include <vector> //#include <string>//using namespace std;////int main(int argc, char* argv[])//{// //1.vector容量// vector<string> v; // v.reserve(5); //只是分配容纳5个元素的空间,size() = 0; capacity() =5;// //vector<string>v(5); //需要调用构造函数,如果构造函数很耗时间,推荐使用第一种//// cout << "size" << v.size() << endl;// cout << "Capacity" << v.capacity() << endl;//// //2.vector操作// v.push_back("Hello,");// v.push_back("how");// v.push_back("are");// v.push_back("you");// v.push_back("?");//// copy(v.begin(), v.end(), ostream_iterator<string>(cout, " "));// //copy(v.front(), v.back(), ostream_iterator<string>(cout, " "));// cout << endl;//// cout << "max_size" << v.max_size() << endl;// cout << "size" << v.size() << endl; //实际能够容纳的元素数量size <= capacity// cout << "Capacity" << v.capacity() << endl; //当前容器预留了多大空间(在不进行重新分配内存的前提下,最多可以容纳多少个元素)//// swap(v[1], v[3]);// copy(v.begin(), v.end(), ostream_iterator<string>(cout, " "));// cout << endl;//// vector<string>::iterator it1 = v.begin();// vector<string>::iterator it2 = v.end();// cout << *it1 << endl;// cout << *(it2 - 1) << endl;//// v.insert(find(v.begin(), v.end(), "?"), "always");//// v.back() = "1";//// copy(v.begin(), v.end(), ostream_iterator<string>(cout, " "));// cout << endl;//// cout << "max_size" << v.max_size() << endl;// cout << "size" << v.size() << endl;// cout << "Capacity" << v.capacity() << endl;// // system("pause");// return 0;//}/////**************************************************////* STL--List学习 *////**************************************************///#include <iostream>//#include <list>//#include <algorithm>//#include <iterator> //输入及输出用的iostream iterator类//using namespace std;////void printLists(const list<int>& list1, const list<int>& list2)//{// cout << "list1:";// copy(list1.begin(), list1.end(), ostream_iterator<int>(cout, " "));// cout << endl << "list2:";// copy(list2.begin(), list2.end(), ostream_iterator<int>(cout," "));// cout << endl << endl;//}////int main()//{// list<int> list1, list2;// for (int i = 0; i < 6; ++i)// {// list1.push_back(i); // 0 1 2 3 4 5// list2.push_front(i); // 5 4 3 2 1 0// }// printLists(list1, list2);//// //-find() 操作返回元素3的迭代器的位置// //把list1中的所有元素插入到list2中元素为3之前// list2.splice(find(list2.begin(), list2.end(), 3), list1);// // list2.splice(list2.begin(), list1);// printLists(list1, list2);//// //相当于倒置// list2.splice(list2.end(), list2, list2.begin());// printLists(list1, list2);//// //排序,并去掉重复// list2.sort();// list1 = list2;// list2.unique();// //从输入序列中“删除”所有相邻的重复元素。// //比如:12033077708 删除后12030708// printLists(list1, list2);//// //合并// list1.merge(list2);// printLists(list1, list2);//// system("pause");// return 0;//}/***********************************************/// splicing 的用法/***********************************************///#include <iostream>//#include <list>//#include <string>//#include <algorithm>////using namespace std;//int main()//{//// list<int> mylist1, mylist2;// list<int>::iterator it;//// // set some initial values:// for (int i = 1; i <= 4; i++)// mylist1.push_back(i); // mylist1: 1 2 3 4// for (int i = 1; i <= 3; i++)// mylist2.push_back(i * 10); // mylist2: 10 20 30//// it = mylist1.begin();// ++it; // points to 2// mylist1.splice(it, mylist2); // mylist1: 1 10 20 30 2 3 4//// // mylist2 (empty)//// // "it" still points to 2 (the 5th element) //// mylist2.splice(mylist2.begin(), mylist1, it);//// // mylist1: 1 10 20 30 3 4//// // mylist2: 2//// // "it" is now invalid.//// it = mylist1.begin();//// advance(it, 3); // "it" points now to 30//////// mylist1.splice(mylist1.begin(), mylist1, it, mylist1.end());//// // mylist1: 30 3 4 1 10 20//////// cout << "mylist1 contains:";//// for (it = mylist1.begin(); it != mylist1.end(); it++)//// cout << " " << *it;//////// cout << "/nmylist2 contains:";//// for (it = mylist2.begin(); it != mylist2.end(); it++)//// cout << " " << *it;//// cout << endl;//////// list<string> dictionary, bword;//// dictionary.push_back("any");//// dictionary.push_back("angle");//// dictionary.push_back("ajust");//// dictionary.push_back("common");//// dictionary.push_back("cannon");//// dictionary.push_back("company");//// bword.push_back("blue");//// bword.push_back("banana");//// bword.push_back("break");//// list<string>::iterator its = dictionary.begin();//// for (int i = 0; i < 3; i++)//// its++;//// dictionary.splice(its, bword);//// copy(bword.begin(), bword.end(), ostream_iterator<string>(cout, "/n"));//// return 0;////}/***********************************************//* STL--Set学习 *//***********************************************/#include <iostream> #include <set> #include <iterator>#include <xfunctional> //greaterusing namespace std;int main(){ /*type of the collection: *-no duplicates *-elements are integral values *-descending order */ typedef set<int,greater<int> > IntSet; IntSet coll1; // empty set container //insert elements in random order coll1.insert(4); coll1.insert(3); coll1.insert(5); coll1.insert(1); coll1.insert(6); coll1.insert(2); coll1.insert(5); //iterate over all elements and print them IntSet::iterator pos; for (pos = coll1.begin(); pos != coll1.end(); ++pos) { cout << *pos << ' '; } cout << endl; //再次插入 4 pair<IntSet::iterator, bool> status = coll1.insert(4); if (status.second) { cout << "4 inserted as element " << distance(coll1.begin(), status.first) + 1 << endl; } else { cout << "4 already exists" << endl; } //assign elements to another set with ascending order set<int> coll2(coll1.begin(), coll1.end()); //print all elements of the copy copy(coll2.begin(), coll2.end(), ostream_iterator<int>(cout, " ")); cout << endl; //remove all elements up to element with value 3 coll2.erase(coll2.begin(), coll2.find(3)); //remove all elements with value 5 int num; num = coll2.erase(5); cout << num << " element(s) removed" << endl; //print all elements copy(coll2.begin(), coll2.end(), ostream_iterator<int>(cout, " ")); cout << endl; system("pause"); return 0;}STL的学习以大神的博客为主:http://blog.csdn.net/column/details/stl-note.html
阅读全文
0 0
- 20170807
- 20170807
- 20170807~20170811
- 20170807-20170813
- java学习整理20170807
- 战狼2影评-20170807
- SQL语法学习20170807
- Java整理代码20170807
- 20170807(工具包)
- 酒客项目日志20170807
- Mark-20170807-ubuntu vnc on docker
- 20170807学习总结-selenium获取列表内容
- Linux学习笔记——20170807
- 20170807-20170813C#工作学习周总结
- 20170807 JAVA用String类判别身份证号、手机号和电话号码
- Mark-20170807-k8s-假装终于成功安装 dashboard
- 20170807ceph入门(一)——ceph中rados对象创建以及文件上传与下载
- 20170807-20170808工作记账流水(2017-08-08 10:00)
- coursera《计算导论与C语言基础》第七周
- hadoop单节点安装
- LeetCode 268. Missing Number
- leetcode 647. Palindromic Substrings
- 使用PowerDesigner创建Mysql表的问题
- 20170807
- Web开发中文乱码问题汇总
- HelloWorld
- Swift_学习笔记_字符串、数组、字典
- Tomcat服务启动项目页面乱码
- Git+IDEA 克隆项目时出现:Clone failed: Could not read from remote repository.
- hdu1754 IHateIt (线段树点更新,区间查询)
- CSU-ACM2017暑假集训比赛3D
- HTML5_制作点名器-math-date-计时器