社区
C++ 语言
帖子详情
请教一道简单的题目
jp1984
2004-03-15 11:00:06
如何有递归函数r_reverseOutput() 按归反的顺序输出迭代器范围[first,last)的元素。template<typename T>
void r_reverseOutput(list<T>::iterator first,list<T>::iterator last)
...全文
108
12
打赏
收藏
请教一道简单的题目
如何有递归函数r_reverseOutput() 按归反的顺序输出迭代器范围[first,last)的元素。template void r_reverseOutput(list::iterator first,list::iterator last)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gameboy007
2004-03-21
打赏
举报
回复
你的意思是否这样
#include <iostream>
#include <list>
using namespace std;
template<typename T>
void r_reverseOutput(typename list<T>::iterator first, typename list<T>::iterator last)
{
while (true) {
swap(*first, *--last);
if (first == last)
break;
else if (++first == last)
break;
}
}
int main()
{
int v[] = { 1,2,3,4,5 };
list<int> a(v,v+sizeof(v)/sizeof(v[0]));
r_reverseOutput<int>(a.begin(), a.end());
list<int>::iterator beg(a.begin());
while (beg != a.end())
cout << *beg++ << " ";
system("PAUSE");
}
jp1984
2004-03-21
打赏
举报
回复
强!!!对了,就是这个意思。。。给分给分了!!
jp1984
2004-03-20
打赏
举报
回复
对的 啊,就是把原来表中元素反序存放。。至少要调用本身吧。。你的程序我为什么就看不明白呢
gameboy007
2004-03-20
打赏
举报
回复
你所指的递归是否是return一個反須序的容器?
jp1984
2004-03-20
打赏
举报
回复
这哪里用到递归了?????
gameboy007
2004-03-20
打赏
举报
回复
你所说的停止条件是是range[begin,end)?
我当是的话就是以下这样:
template<typename T>
void r_reverseOutput(list<T>::reverse_iterator first,list<T>::reverse_iterator last)
{
while (first != last) {
first->DoSomthing(); 对各个元素實行其调用
if (*first == condition) 達到停止条件後离开while loop
break;
++first;
}
first->DoOther();
}
如果你所说的停止条件是要找到其元素後就停止的話,应该用find例如:
list<T>::iterator itr(find(ctr.rbegin(), ctr.rend(), T_value));
jp1984
2004-03-17
打赏
举报
回复
有没有人顶?? 解决就加分……
gameboy007
2004-03-16
打赏
举报
回复
template<typename T>
void r_reverseOutput(list<T>::reverse_iterator first,list<T>::reverse_iterator last)
{
}
调用
reverseOutput(container.rbegin(), container.rend());
jp1984
2004-03-16
打赏
举报
回复
没有停止条件?????
jp1984
2004-03-16
打赏
举报
回复
是课后练习啊, WILLAM TOPP 和WILLIAM FORD 那本经典的《DATA STRUCTURE ,C++描述,USING STL》上的联系,真的不难,但是我一点思路都没有,为什么这么长时间了还是没有人来解决 。。我现在就在找那个停止条件。 用什么算法来实现的问题。。模型建不起来。
dahan2005
2004-03-16
打赏
举报
回复
很复杂呀!关注
congliu
2004-03-15
打赏
举报
回复
在传入参数时,用list的对象的rbegin()和rend()即可
口语交际:
请教
.docx
(2)游戏中有四个字,每个字中都藏着
一道
题目
。在闯关的过程中,遇到难题自己不能解决时,你可以采用各种方式向人
请教
,当你们全部闯关成功时,你们会得到一份意外的惊喜哟。大家想要吗?好,谁先来闯关?你想闯哪...
请教
一道
算法
题目
问题描述: 给出一个m阶多项式 (bi已知) 对给定的正整数 a,求 由于这个数可能比较大,所以只需计算 S(n) 对109+7取模后的值。输入格式: 第一行包括三个整数 n,m,a。 第二行包括m+1个整数,b0,b1,...
请教
一道
C++
题目
y for(int j=y;j;j++)x+=j;j定义在循环里 for循环执行完(就是x+=j)之后 j都只是局部变量 所以cout;执行的时候找不到j和x两变量了 先定义才能用|||怎么两个y++|||作用域问题x int j;for(j=y;j;...
有关c语言if 的
简单
题目
,高手请进,
请教
一道
简单
的c语言题!
该楼层疑似违规已被系统折叠隐藏此楼查看此楼#include#include#include#include#include#includeusingnamespacestd;ifstreamfin("alpha.in");ofstreamfout("alpha.out");#definecinfin#definecoutfoutintnn;...
c语言关于进位
题目
,高手请进,
请教
一道
简单
的c语言题!
该楼层疑似违规已被系统折叠隐藏此楼查看此楼#include#include#include#include#include#includeusingnamespacestd;ifstreamfin("alpha.in");ofstreamfout("alpha.out");#definecinfin#definecoutfoutintnn;...
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章