3月7号-3月13号内容总结:

3月13号学习报告

内容:

string类型

作用: 对象存储字符串

与字符数组相比所具有的优势:对象能够与一般变量一样进行加法运算(将字符连接在一个变量中),以及使用条件表达式等

string类对象定义:
string x;

赋值:
string x=“Hello”;
x=“hello”;
x+=" world!";
cin>>x;
getline(cin,x);//可输入空格而cin不能输入空格等

参与条件表达式:
if(x==“world”)
cout<<“1”;
else cout<<“0”;
当x的内容与字符串"world"完全相同则输出1,否则输出0

string的两个常用函数:
1.empty()//判断对象是否为空,返回一个bool值
调用:
if(x.empty())//x为string定义的对象
cout<<“空”;

2.size()//返回string对象的长度,即对象中字符的个数
调用:
cout<<x.size();

if(x.size()>80)
cout<<“1”;

用下标运算符访问string对象指定位置的字符:
string x=“world”;//长度为5
cout << x[4];//下标从0开始,输出:d

栈stack:

含义:一种先进后出的数据结构,只有一个出口且只能操作最顶端元素

定义方法:
stack<数据类型>对象名;

操作:
empty():判断对象是否为空并返回bool值
size():返回栈内元素的个数
top():返回栈顶元素值
push(标识符a):向栈内压入一个元素a
注:以上的调用方法全为: 标识符.函数

动态数组vector:

定义:
vector<元素类型>标识符;
例:
vectorx;

操作:
empty();
size();
push_back(标识符):将元素a插入最尾端
pop_back() :将最尾端元素删除

调用:
x[i];

排序函数sort:

包含头文件:algorithm
调用方法:
sort(数组名,数组名+数组元素个数)
例:
int n[]={1,23,4,2,77,12,5};
sort(n,n+7);
int i;
for(i=0;i<7;i++)
cout<<n[i]<<endl;//1 2 4 5 12 23 77
或者:
sort(n,n+7,cmp)//cmp为自定义排序方法的函数
例如:
bool cmp(int a,int b)
{return a>b;}

sort(n,n+7,cmp);//此时为从大到小排序

去重unique:

该函数的作用是"去除"(非真,仅是将重复元素放置容器末尾)容器或者数组中相邻元素的重复出现的元素!
所以一般在使用该函数时通常会采用sort 函数将容器排序在用unique函数去重
例:
0 1 1 2 4 4 6
去重后:
0 1 2 4 6

贪心算法:

一种用最优解解决问题的方法。它是按照某种最优策略将复杂问题层层分解成子问题,并由子问题的最优解"回溯"出整个问题的最优解.

感悟:

string类型要比字符数组要好使用很多,可以节省一些时间去学习。sort函数的学习让我能够更方便的去排列数组,节省许多敲代码的时间,是一个十分方便的函数。还有贪心算法,这是我第一次接触算法,但是贪心算法也已经有些了解,算是为算法开了个头。acm的学习要比程序设计的要难上许多,必须要花更多的时间到这上面去,再像从前那种慢节奏(学一下,休息一下)的学习方法是跟不上的。(其实这次还真没跟上老师的节奏,搞得第一次写还真不知道写什么好qwq)。之后的学习要在讲完课的当天就要复习,使用当天学到的知识,巩固记忆。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值