C++标准库学习(三)--队列和string类
来源:互联网 发布:起床困难户闹钟软件 编辑:程序博客网 时间:2024/06/05 11:31
今天学习了C++的queue和string类的基本操作。queue是自带的队列,应用很是方便。要注意,pop函数并不返回pop出的值。
#include <iostream>#include <queue>using namespace std;int main(){ queue<int> queue_sample;//定义队列 int i; for(i=1;i<10;i++) { queue_sample.push(i);//入队 } for(i=1;i<10;i++) { cout<<queue_sample.front()<<endl;//访问队首元素 queue_sample.pop();//出队,注意,不返回队首元素 } if(queue_sample.empty()) { cout<<"是空的!"<<endl; } else { cout<<"非空!"<<endl; } cout<<queue_sample.size(); return 0;}接下来是string类的基本操作,这些操作和java竟然惊人相似,以后编程终于不用再麻烦地实现这些操作了!
#include <iostream>#include <string>using namespace std;using std::string;int main(){ //1.初始化string string sample = ""; string sample2 = ""; //2.连接操作 char a = 'a'; int i; for(i=0;i<26;i++) { char b = a+i; sample = sample+b;//重载的加号运算符,可以把一个字符或者字符串添加到末尾 } sample = sample+"12121212";//加号亦可用于往结尾添加字符串 cout<<sample.size()<<endl;//size是字符串的大小 cout<<sample.length()<<endl;//length是字符串长度 cout<<sample<<endl; //3.截取子串操作 //substr操作,第一个参数是开始的下标,第二个是要截取的长度 sample2 = sample.substr(0,10);//截取前十位 cout<<"sample2是:"<<sample2<<endl; //4.比较操作,返回值为0相等,大于是1,小于是-1 if(sample2.compare("abcdefghij")==0) { cout<<"返回值为0时相等!"<<endl; } //5.查找子串操作 string sample3 = "abcaaeaabcabeabda"; unsigned int j=0; //查找所有字符“a”的位置并且输出下标位置 while(j<sample3.length()) { int r = sample3.find('a',j);//find函数是返回sample3字符串从下标j开始的东西 if(r==-1)//当无法找到的时候,find的返回值是-1 { break; } cout<<r<<" "; j = r+1; } cout<<endl; //查找所有字符串“ab”的位置并输出初始下标,注意find函数是返回的第一个找到的位置 j = 0; while(j<sample3.length()) { int r = sample3.find("ab",j); if(r==-1) { break; } cout<<r<<" "; j = r+2; } cout<<endl; //6.替换字符串某一部分操作 string sample4 = "12345abcde"; sample4.replace(3,2,"6789");//把字符串“45”去掉,然后在原位置插入“6789” cout<<sample4<<endl;//replace 第一个参数是开始删除下标,第二个是要删除的长度,第三个参数是要替换进去的串 //7.插入字符串某一部分操作 string sample5 = "12345abcde"; sample5.insert(3,"6789");//在第4个位置插入“6789”; cout<<sample5<<endl; //8.删除操作 string sample6 = "12345abcde"; sample6.erase(0,3);//删除从头开始的3个字符 cout<<sample6<<endl; //使用迭代器来访问每个字符,迭代器类似于指针操作。注意,end()返回的是最后一个字符的后面! string::iterator x; for(x=sample6.begin();x!=sample6.end();x++) { cout<<*x<<endl;//这里需要解引用 } return 0;}今天收获颇丰!
阅读全文
0 0
- C++标准库学习(三)--队列和string类
- 《C++ primer plus》第十六章:string类和标准模板库(三) 学习笔记
- C/C++学习笔记(十)标准模板库STL和string
- C++Primer学习札记_标准库String类
- c++primer学习笔记(3.2)标准库string类型
- C标准库学习string.h
- C++PP Chapter XVI String类和标准模板库
- C++Simplify04-标准库string和vector
- C++学习---------------string类和标准模板库
- C++ 标准库 string类型(三)
- linxu C 学习笔记(三):标准I/O库
- C++(标准库)栈和队列以及优先队列的使用
- 标准C++类string的Copy-On-Write技术(三)
- 标准C++类string的Copy-On-Write技术(三)
- 标准C++类string的Copy-On-Write技术(三)
- 标准C++类string的Copy-On-Write技术(三)
- 标准C++类string的Copy-On-Write技术(三)
- 标准C++类string的Copy-On-Write技术(三)
- 接口和抽象类的区别
- 【例子驱动学习】unique_ptr
- 鼠标划入显示提示框
- JavaScript基础之Node.js与http
- Codeforces 862C Mahmoud and Ehab and the xor
- C++标准库学习(三)--队列和string类
- Axure游戏原型设计实例应用(一)——Einsphoton
- LINUX下查看CPU和内存的使用情况
- 让你分分钟理解 JavaScript 闭包
- 让你的博客高逼格起来之博客专栏
- C语言(让一个直线在原地不停的旋转)
- css学习
- Unit Testing
- GetWindowRect与GetClientRect 的区别