⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_21082.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:21082 发表者:jw 发表日期:2002-11-13 15:55:42
<br>主题:请教两道算法题:
<br>内容:1:知一个向量中的元素值非递减有序排列,编写一个函数删除向量中多余的值相同的元素。<BR>2:编写一个算法,使用带表头附加结点的循环单链表解决约瑟夫问题。其问题是:设有N个人围坐在一张圆桌周围,现从某个人开始从一报数,数到M的人出列(即离开座位,不参加以后的报数),接着从出列的下一个人开始重新从1报数,树到M的人又出列,如此下去直到所有的人都出列为止。试求出他们的出列次序。例如当N=8,M=4时,若从第一个人(假定每个人的编号依次为1,2……N)开始报数,则得到的出列次序为4,8,5,2,1,3,7,6。
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:天才 回复日期:2002-11-15 16:33:04
<br>内容://delNoUse.h<BR>#ifndef _DELNOUSETEMPLATE_<BR>#define&nbsp;&nbsp;&nbsp;&nbsp;_DELNOUSETEMPLATE_<BR><BR>#ifndef _STD_VECTOR_<BR>#define _STD_VECTOR_<BR><BR>#include &lt;vector&gt;<BR><BR>#endif _STD_VECTOR_<BR><BR>#ifndef _STD_MAP_<BR>#define _STD_MAP_<BR><BR>#include &lt;map&gt;<BR><BR>#endif _STD_MAP_<BR><BR>using namespace std;<BR><BR>template &lt;class T&gt;<BR>class delNoUseTemplate<BR>{<BR>public:<BR>&nbsp;&nbsp;&nbsp;&nbsp;delNoUseTemplate();<BR>&nbsp;&nbsp;&nbsp;&nbsp;delNoUseTemplate(vector&lt;T&gt;&amp; vec);<BR>&nbsp;&nbsp;&nbsp;&nbsp;void setVector(vector&lt;T&gt;&amp; vec);<BR>&nbsp;&nbsp;&nbsp;&nbsp;vector&lt;T&gt; getResult();<BR>&nbsp;&nbsp;&nbsp;&nbsp;~delNoUseTemplate();<BR>private:<BR>&nbsp;&nbsp;&nbsp;&nbsp;void generateResult();<BR>&nbsp;&nbsp;&nbsp;&nbsp;void makeMap(T&amp; t);<BR>&nbsp;&nbsp;&nbsp;&nbsp;void makeVec(pair&lt;T,char&gt; p);<BR>private:<BR>&nbsp;&nbsp;&nbsp;&nbsp;std::vector&lt;T&gt; m_vec;<BR>&nbsp;&nbsp;&nbsp;&nbsp;std::map&lt;T,char&gt; m_map;<BR>};<BR>template &lt;class T&gt;<BR>delNoUseTemplate&lt;T&gt;::delNoUseTemplate&lt;T&gt;()<BR>{<BR><BR>}<BR>template &lt;class T&gt;<BR>delNoUseTemplate&lt;T&gt;::delNoUseTemplate&lt;T&gt;(vector&lt;T&gt;&amp; vec)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;vector&lt;T&gt;::iterator l_itVec;<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(l_itVec=vec.begin();l_itVec!=vec.end();l_itVec++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_vec.push_back(*l_itVec);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>}<BR>template &lt;class T&gt;<BR>delNoUseTemplate&lt;T&gt;::~delNoUseTemplate&lt;T&gt;()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_vec.clear();<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_map.clear();<BR>}<BR>template &lt;class T&gt;<BR>void delNoUseTemplate&lt;T&gt;::setVector(vector&lt;T&gt;&amp; vec)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;vector&lt;T&gt;::iterator l_itVec;<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(l_itVec=vec.begin();l_itVec!=vec.end();l_itVec++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_vec.push_back(*l_itVec);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>}<BR>template &lt;class T&gt;<BR>vector&lt;T&gt; delNoUseTemplate&lt;T&gt;::getResult()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;generateResult();<BR>&nbsp;&nbsp;&nbsp;&nbsp;return m_vec;<BR>}<BR>template &lt;class T&gt;<BR>void delNoUseTemplate&lt;T&gt;::generateResult()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;vector&lt;T&gt;::iterator l_itVec;<BR>&nbsp;&nbsp;&nbsp;&nbsp;map&lt;T,char&gt;::iterator l_itMap;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;m_map.clear();<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(l_itVec=m_vec.begin();l_itVec!=m_vec.end();l_itVec++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;makeMap(*l_itVec);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_vec.clear();<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(l_itMap=m_map.begin();l_itMap!=m_map.end();l_itMap++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;makeVec(*l_itMap);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<BR>}<BR>template &lt;class T&gt;<BR>void delNoUseTemplate&lt;T&gt;::makeMap(T&amp; t)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_map.insert(make_pair(t,'S'));<BR>}<BR>template &lt;class T&gt;<BR>void delNoUseTemplate&lt;T&gt;::makeVec(pair&lt;T,char&gt; p)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_vec.push_back(p.first);<BR>}<BR><BR>#endif _DELNOUSETEMPLATE_<BR><BR>//delNoUse.cpp<BR>#include "delNoUse.h"<BR><BR>#ifndef _STD_IOSTREAM_<BR>#define _STD_IOSTREAM_<BR>#include &lt;iostream&gt;<BR>#endif _STD_IOSTREAM_<BR><BR>#ifndef _STD_ALGORITHM_<BR>#define _STD_ALGORITHM_<BR>#include &lt;algorithm&gt;<BR>#endif _STD_ALGORITHM_<BR><BR>using namespace std;<BR><BR>void print(int i)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;std::cout&lt;&lt;i&lt;&lt;' ';<BR>}<BR><BR>void main(void)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;int l_i[12]={1,1,2,5,3,2,1,0,98,337,22,337};<BR>&nbsp;&nbsp;&nbsp;&nbsp;vector&lt;int&gt; l_vec(l_i,l_i+12);<BR>&nbsp;&nbsp;&nbsp;&nbsp;delNoUseTemplate&lt;int&gt; l_delNoUseT(l_vec);<BR>&nbsp;&nbsp;&nbsp;&nbsp;l_vec=l_delNoUseT.getResult();<BR>&nbsp;&nbsp;&nbsp;&nbsp;for_each(l_vec.begin(),l_vec.end(),print);<BR>}
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:天才 回复日期:2002-11-15 17:49:47
<br>内容:第二题<BR>//YSF.h<BR>#ifndef _YSF_H_<BR>#define _YSF_H_<BR><BR>#ifndef _STD_LIST_<BR>#define _STD_LIST_<BR>#include &lt;list&gt;<BR>#endif _STD_LIST_<BR><BR>#ifndef _STD_IOSTREAM_<BR>#define _STD_IOSTREAM_<BR>#include &lt;iostream&gt;<BR>#endif _STD_IOSTREAM_<BR><BR>using namespace std;<BR><BR>template &lt;class T,int N&gt;<BR>class YSF<BR>{<BR>public:<BR>&nbsp;&nbsp;&nbsp;&nbsp;YSF();<BR>&nbsp;&nbsp;&nbsp;&nbsp;YSF(list&lt;T&gt; vec);<BR>&nbsp;&nbsp;&nbsp;&nbsp;void setVec(list&lt;T&gt; vec);<BR>&nbsp;&nbsp;&nbsp;&nbsp;~YSF() {}<BR>&nbsp;&nbsp;&nbsp;&nbsp;void outputVec();<BR>private:<BR>&nbsp;&nbsp;&nbsp;&nbsp;list&lt;T&gt; m_vec;<BR>};<BR>template &lt;class T,int N&gt;<BR>YSF&lt;T,N&gt;::YSF&lt;T,N&gt;()<BR>{<BR><BR>}<BR>template &lt;class T,int N&gt;<BR>YSF&lt;T,N&gt;::YSF&lt;T,N&gt;(list&lt;T&gt; vec)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;list&lt;T&gt;::iterator l_itVec;<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(l_itVec=vec.begin();l_itVec!=vec.end();l_itVec++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_vec.push_back(*l_itVec);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>}<BR>template &lt;class T,int N&gt;<BR>void YSF&lt;T,N&gt;::setVec(list&lt;T&gt; vec)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;list&lt;T&gt;::iterator l_itVec;<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(l_itVec=vec.begin();l_itVec!=vec.end();l_itVec++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_vec.push_back(*l_itVec);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>}<BR>template &lt;class T,int N&gt;<BR>void YSF&lt;T,N&gt;::outputVec()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;int l_i=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;list&lt;T&gt; l_vec=m_vec;<BR>&nbsp;&nbsp;&nbsp;&nbsp;list&lt;T&gt;::iterator l_itLT,l_itLTDel;<BR>&nbsp;&nbsp;&nbsp;&nbsp;l_itLT=l_vec.begin();<BR>&nbsp;&nbsp;&nbsp;&nbsp;while(l_vec.size()&gt;0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(l_i=0;l_i&lt;N;l_i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;l_itLTDel=l_itLT;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(l_itLT!=--l_vec.end())<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;l_itLT++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;l_itLT=l_vec.begin();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"I was deleted = "&lt;&lt;*l_itLTDel&lt;&lt;endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;l_vec.erase(l_itLTDel);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>}<BR><BR>#endif _YSF_H_<BR><BR>//main.cpp<BR>#include "ysf.h"<BR><BR>using namespace std;<BR><BR>void main(void)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;int l_i[12]={1,2,3,4,5,6,7,8,9,10,11,12};<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;list&lt;int&gt; l_list(l_i,l_i+8);<BR>&nbsp;&nbsp;&nbsp;&nbsp;YSF&lt;int,4&gt; l_ysf(l_list);<BR>&nbsp;&nbsp;&nbsp;&nbsp;l_ysf.outputVec();<BR>}
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:jw 回复日期:2002-11-22 11:03:05
<br>内容:THANKS.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:天才 回复日期:2002-11-22 13:34:21
<br>内容:Welcome!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -