先进后出,单一操作端;
头文件#include
定义:stack
操作:
先进先出,低入顶出;
头文件#include
定义:queue
操作:
头文件#include
定义:vector
操作:
map所有元素都是pair,分为键值+实值;
头文件#include
操作:
迭代器提供对一个容器中的对象的访问方法,并且定义了容器中对象的范围。迭代器就如同一个指针。事实上,C++的指针也是一种迭代器。除了使用下标来访问 vector 对象的元素外,标准库还提供了另一种访问元素的方法:使用迭代器(iterator)。迭代器是一种检查容器内元素并遍历元素的数据类型。
标准库为每一种标准容器(包括vector)定义了一种迭代器类型。迭代器类型提供了比下标操作更通用化的方法:所有的标准库容器都定义了相应的迭代器类型,而只有少数的容器支持下标操作。因为迭代器对所有的容器都适用,现代 C++ 程序更倾向于使用迭代器而不是下标操作访问容器元素,即使对支持下标操作的vector 类型也是这样。
容器的类型:
每种容器类型都定义了自己的迭代器类型,如vector:
vector
这符语句定义了一个名为 iter 的变量,它的数据类型是 vector
由于此前并未使用过迭代器,对于此部分内容还过于生疏,再查询详细资料并进行理解。
为证实map输入后的顺序,我写了一小段代码,虽然没有技术含量,但是也可以加深记忆便于理解
#include
由此可见,map会对string类型的键值按字典序自动排序,自然键值与实值为对应关系,会一并排序。
小S新买了一个掌上游戏机,这个游戏机由两节5号电池供电。使用寿命也有所不同,有的能使用5个小时,有的可能就只能使用3个小时。显然如果他只有两个电池一个能用5小时一个能用3小时,那么他只能玩3个小时的游戏,有一个电池剩下的电量无法使用,但是如果他有更多的电池,就可以更加充分地利用它们,分别能用3、3、5小时,他可以先使用两节能用3个小时的电池,使用半个小时后再把其中一个换成能使用5个小时的电池,两个半小时后再把剩下的一节电池换成刚才换下的电池(那个电池还能用2.5个小时),这样总共就可以使用5.5个小时,没有一点浪费。
现在已知电池的数量和电池能够使用的时间,请你找一种方案使得使用时间尽可能的长。
输入包含多组数据。每组数据包括两行,第一行是一个整数N (2 ≤ N ≤ 1000),表示电池的数目,接下来一行是N个正整数表示电池能使用的时间。
对每组数据输出一行,表示电池能使用的时间,保留到小数点后1位。
2
3 5
3
3 3 5
3.0
5.5
分析题目所给条件并举几个特殊例子之后就可以大概分析出本题可分为两种情况,对题目中所给的两个例子的情况可以得出:
对上面两种情况进行分析之后,发现他们两者均存在显著特征,并对此特征加以判断:
对于此题的解题思路就十分明了了,对于贪心思想也可有较好的理解。
#include
#include
#include
#include
#include
#include
#include
#include
//#define INF 0x3f3f3f3f
//typedef long long ll;
using namespace std;
int a[1000+10];
int main()
{
int n;
while(cin>>n)
{
int sum=0,max=0;
for(int i=0;i>a[i];
if(a[i]>max)
max=a[i];
sum+=a[i];
}
if(max>=sum-max)cout<
在家学习与在校学习差距还是蛮大的,面对一道又一道的难题,很宝贵的就是灵光一现的时刻,而在家学习最大的敌人就是自己,希望自己能继续加油战胜自己。另外希望疫情赶快结束尽快投入正常学习生活。