- 分享
STL
- @ 2024-4-27 17:42:15
#include<bits/stdc++.h> #include using namespace std; //动态数组定义和初始化:
vector v1; //创建一个空的动态数组
vector v2(10); //创建一个空间为10的动态数组,原数默认为0
vector v3(5,3); //创建一个空间为5的动态数组,原数默认为3
vector v4(v3); //创建一个动态数组,其内容拷贝v3
//操作方法:
//push_back(x):在动态数组的最后添加一个元素
//pop_back() :删除动态数组的最后一个元素
//front:访问第一个元素
//back:访问最后一个元素 // end()/begin() //erase(x):删除指定元素 //size():获取 //empty():判空 //clear():清空动态数组
//迭代器 (指针)
int a[10]={1,2,3,4,5,6,7,8,9,10};
vector v5(a,a+5);
//注意:动态数组的索引只能访问已存在的元素。
int main(){ v5[0]=123; cout<<v5.size()<<endl; v5.erase(v5.begin()); for(int i=0;i<v5.size();i++){ cout<<v5[i]<<" " } return 0; }
1 条评论
-
可爱的小花狗 LV 3 @ 2024-5-25 16:34:06#include<bits/stdc++.h> using namespace std; struct t { double we,va,v; }a[5]; bool cmp(t x,t y){ return x.v>y.v;} int main(){ int k; cin>>k; int w,s;
for(int i=1;i<=k;i++) { cin>>w>>s; double n=w,sum=0; for(int i=1;i<=s;i++) { cin>>a[i].we>>a[i].va; a[i].v=a[i].va*1.0/a[i].we; }
sort(a+1,a+s+1,cmp);
for(int i=1;i<=s;i++) { if(n>=a[i].we) sum+=a[i].va; else sum+=n*a[i].v; n-=a[i].we; if(n<=0) break; } printf("%.2lf",sum); cout<<endl; }}
- 1