【vc】【STL源码】vector,deque与sort的用法比较及入门

本文通过一个示例程序介绍了STL中vector、deque容器的使用方法及sort函数的应用。代码展示了如何利用这些组件进行数据的存储、排序和检索。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include  < stdio.h >  
//  sort的定义 
#include  < algorithm >  
//  vector的定义 
#include  < vector >  
//  deque的定义 
#include  < deque >  
//  同样,引入std命名空间 
using   namespace  std; 
//  用数组保存 
int  friends[ 1000 ]; 
//  用vector保存 
vector < int >  vtFriends; 
//  用deque保存 
deque < int >  dqFriends; 

int  main() 

int T; 
scanf(
"%d"&T); 
int iCase; 
for (iCase = 1; iCase <= T; iCase++

// 每次要将vector和deque请空 
vtFriends.clear(); 
dqFriends.clear(); 
printf(
"Scenario #%d: ", iCase); 
int n, f, tn; 
scanf(
"%d%d"&n, &f); 
// 由于后面要找三次,所以先把n的值保存下来 
tn = n; 
int i; 
for (i = 0; i < f; i++

// 保存到数组 
scanf("%d"&friends[i]); 
// 保存到vector 
vtFriends.push_back(friends[i]); 
// 保存到deque 
dqFriends.push_back(friends[i]); 
}
 
// 排序,如果不给第三个参数,默认是按升序排 
// sort实现的是快速排序,它是不稳定排序, 
// 需要稳定排序时,用stable_sort,用法与sort完全一样 
// 对数组进行排序 
sort(friends, friends + f); 
// 对vector进行排序 
sort(vtFriends.begin(), vtFriends.end()); 
// 对deque进行排序 
sort(dqFriends.begin(), dqFriends.end()); 
// 在数组里查找 
for (i = f - 1; i >= 0; i--

-= friends[i]; 
if (n <= 0
break
}
 
// 在vector里查找 
// 先恢复n的值 
= tn; 
for (i = f - 1; i >= 0; i--

-= vtFriends.at(i); 
if (n <= 0
break
}
 
// 在deque里查找 
// 先恢复n的值 
= tn; 
for (i = f - 1; i >= 0; i--

// deque的at方法效率比vector低, 
// 因为deque的元素在内存上不完全是连续的 
-= dqFriends.at(i); 
if (n <= 0
break
}
 
if (i < 0
puts(
"impossible"); 
else 
printf(
"%d ", f - i); 
puts(
""); 
}
 
return 0
}
 

使用的我们学院一个牛人写的一篇东西哈,这里介绍vector,deque和sort的用法,这些都是STL的内容,给你一个网站吧, http://www.stlchina.org/
不过一般好像都不提倡一开始就在程序中使用STL,那些算法都自己写写最好,然后等学会了再用也会理解得更深入的! 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值