学习c++第一周

初学C++

学习c++明显感觉比c语言更为方便,主要原因是c++中库函数更多,在语言中需要很长一段代码才能实现的功能在c++中只需要调用简单的函数即可。

c++基本格式

#include <iostream>
using namespace std;
int main()
{
	string a,b;//定义字符串
	cin>>a;//输入a,无法读入空格
	getline(cin,b);//读入一行,可以读入空格
	cout<<a;//输出a
	cout<<endl;//换行
	cout<<b;//输出b
	return 0;
}

下面是输入输出样例

输入:高大机灵 sd sds
输出:高大机灵
			 sd sds

有关STL容器

STL容器包括顺序式容器和关联式容器。(由于概念性较强,想深入了解的朋友可以自行百度)。

C++ 中的string

就目前我所看string是c++中重要的一环,因为在第一周的学习中反复用到了string
使用string库函数时需要先输入string头文件

#include <iostream>
#include <string>//需增加这一步
using namespace std;
int main()
{
	return 0;
}

下面是这周我所用到的string库函数:

size() 求字符串的长度

#include <iostream>
#include <string>
using namespace std;
int main()
{
	string a;
	cin>>a;
	int n=a.size();
	cout<<n;
	return 0;
}

下面是输入输出样例

输入:gyh
输出:3

at()修改字符串中指定下标为某个字符(功能之一)

#include <iostream>
#include <string>
using namespace std;
int main()
{
	string a;
	cin>>a;
	a.at(2)='0';
	cout<<a;
	return 0;
}

下面是输入输出样例

输入:123
输出:120

erase(a,b)删除从下标为a后的b个字符(功能之一)

#include <iostream>
#include <string>
using namespace std;
int main()
{
	string a;
	cin>>a;
	a.erase(1,2);
	cout<<a;
	return 0;
}

下面是输入输出样例

输入:123
输出:1

find() 顺序在一个字符串中查找另一个字符串(功能之一)

如果没找到就返回string::npos

#include <iostream>
#include <string>
using namespace std;
int main()
{
	string a,b("123");
	cin>>a;
	int n=0;
	if(a.find(b)!=string::npos)
		n=1;
	cout<<n;
	return 0;
}

下面是输入输出样例

输入:123
输出:1
输入:12
输出:0

reverse()字符串反转函数

由于reverse 是后续新加的函数,所以头文件将string更改为algorithm

#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
	string a;
	cin>>a;
	reverse(a.begin(),a.end());
	cout<<a; 
	return 0;
}

下面是输入输出样例

输入:123
输出:321

sort排序函数用法

头文件#include
sort有三个参数(第三个参数可以不写)
1、第一个参数是要排的数组的起始地址;
2、第二个参数是要排的结束地址(或者是最后一位要排的地址);
3、第三个参数是排序的方式,可以是从小到大也可以是从大到小,还可以不写第三个参数,此时的默认方法是从小到大的排序;

两个参数用法
#include <iostream>
#include <algorithm>
int main()
{
 int a[20]={2,4,1,23,5,76,0,43,24,65},i;
 for(i=0;i<20;i++)
  cout<<a[i]<<endl;
 sort(a,a+20);
 for(i=0;i<20;i++)
 cout<<a[i]<<endl;
 return 0;
}
三个参数
// sort algorithm example
#include <iostream>     // std::cout
#include <algorithm>    // std::sort
#include <vector>       // std::vector

bool myfunction (int i,int j) { return (i<j); }//升序排列
bool myfunction2 (int i,int j) { return (i>j); }//降序排列

struct myclass {
  bool operator() (int i,int j) { return (i<j);}
} myobject;

int main () {
    int myints[8] = {32,71,12,45,26,80,53,33};
  std::vector<int> myvector (myints, myints+8);               // 32 71 12 45 26 80 53 33

  // using default comparison (operator <):
  std::sort (myvector.begin(), myvector.begin()+4);           //(12 32 45 71)26 80 53 33

  // using function as comp
  std::sort (myvector.begin()+4, myvector.end(), myfunction); // 12 32 45 71(26 33 53 80)
    //std::sort (myints,myints+8,myfunction);不用vector的用法
    
  // using object as comp
  std::sort (myvector.begin(), myvector.end(), myobject);     //(12 26 32 33 45 53 71 80)

  // print out content:
  std::cout << "myvector contains:";
  for (std::vector<int>::iterator it=myvector.begin(); it!=myvector.end(); ++it)//输出
    std::cout << ' ' << *it;
  std::cout << '\n';

  return 0;
}

string 使用反向迭代器来完成逆序排列
#include <iostream>
using namespace std;
int main()
{
     string str("cvicses");
     string s(str.rbegin(),str.rend());
     cout << s <<endl;
     return 0;
}
//输出:sescivc
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值