今天学习了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;
}
今天收获颇丰!