STL—vector、string

vector 向量容器

C++代码功能实现

#include<vector>
#include<stdlib.h>
#include<iostream>
#include<algorithm>
using namespace std;
bool  Comp(const int &a,const int &b)
{
	if(a!=b)	return a>b;
	else	return a>b;
}
int main()
{
	vector<int> v(10);
	for(int i=0;i<10;i++)
		v[i]=i;
	v.erase(v.begin()+2);//删除 
	vector<int>::iterator t;
	for(t=v.begin();t!=v.end();t++)
		cout<<*t<<" "; 
	cout<<endl;
	v.erase(v.begin()+4);
	for(t=v.begin();t!=v.end();t++)
		cout<<*t<<" "; 
	cout<<endl;
	v.erase(v.begin()+1,v.begin()+5);
	for(t=v.begin();t!=v.end();t++)
		cout<<*t<<" ";
	cout<<endl<<v.size()<<endl;
//	v.clear();
	cout<<v.size()<<endl<<v[0]<<" "<<v[1]<<" "<<v[2]<<" "<<v[3]<<endl;
	reverse(v.begin(),v.end());
	for(t=v.begin();t!=v.end();t++)
		cout<<*t<<" ";
	cout<<endl;
	vector<int> a;
	for(int i=0;i<10;i++)
		a.push_back(9-i);
	for(int i=0;i<10;i++)
		cout<<a[i]<<" ";
	cout<<endl;
	sort(a.begin(),a.end());//按升序排序 
	for(int i=0;i<10;i++)
		cout<<a[i]<<" ";
	vector<int> b;
	for(int i=0;i<10;i++)
		b.push_back(i);
	cout<<endl;
	sort(b.begin() ,b.end(),Comp);//按Comp规则排序 
	for(int i=0;i<10;i++)
		cout<<b[i]<<" ";
	cout<<endl;
	cout<<b.size()<<endl;//包含多少个元素 
	cout<<b.empty()<<endl;//如果为0则为真,为1则为假; 
	b.clear();//清空 
	cout<<b.empty()<<endl;
	cout<<endl;	
	return 0;
}

string 容器

C++代码实现

#include<string.h>
#include<iostream>//向量需要
#include<algorithm>//使用反向排序reverse()函数 
#include<vector>
using namespace std;
int main()
{
	string s;//创建字符串对象
	s="zhang wei play C++.";//对象赋值 
	cout<<s.length()<<endl;
	cout<<s<<endl; //下标从零开始计数 
	char ss[1000];
	scanf("%s",ss);
	s=ss;//把字符数组赋值给string对象 
	cout<<s<<endl;
	s=s+'z';//string对象尾部加字符 
	s=s+'w';
	cout<<s<<endl;
	s=s+"zhangwei";//尾部加字符串
	cout<<s<<endl;
	s.append("iewgnahz");//与尾部加字符串一样 
	cout<<s<<endl; 
	string::iterator t;//定义迭代器
	t=s.begin();
	s.insert(t+5,'&');//插入第5个字符前 
	s.insert(t+14,'&');//插入第14个字符前 
	cout<<s<<endl;
	cout<<s[0]<<endl;
	cout<<s[0]-'1'<<endl;//两个相同的字符相减为零
	t=s.begin();
	s.erase(t+1);//删除1位置字符 
	cout<<s<<endl;
	s.erase(t+1);
	cout<<s<<endl;
	s.erase(t+1,t+13);				//删除1~13区间元素 
	cout<<s<<endl;
	string s1;
	s1=s;
	cout<<s.length()<<endl;
	s1="";			//清空字符串 
	cout<<s1.empty()<<endl;
	s=s+"abcd";
	s.replace(2,3,"555");//从第2个开始将连续的三个字符替换555 
	cout<<s<<endl; 
	cout<<s.find("555")<<endl;
	cout<<s.find('a')<<endl;
	cout<<s.find("good")<<endl;
	cout<<s.find('o')<<endl;
	cout<<s.compare("1234")<<endl;//比较,s大返回1;小返回-1;相同返回0;
	reverse(s.begin(),s.end());//反向排序 
	cout<<s<<endl; 
	vector<string> v;//类似于字符串数组 
	v.push_back("jack");
	v.push_back("Tom");
	cout<<v[0]<<endl;
	cout<<v[1]<<endl;
	cout<<v[0][3]<<endl;
	cout<<v[1][2]<<endl;
	s="12345";
	cout<<s<<endl;
	int sum=0;
	for(int i=0;i<s.length();i++)
	{
		sum+=s[i]-'0';
	}
	cout<<sum<<endl;
	cin>>s;
	reverse(s.begin(),s.end());
	cout<<s<<endl;
	printf(s.c_str());
	cout<<endl;
	return 0;
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我菜就爱学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值