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

📄 subject_66085.htm

📁 vc
💻 HTM
字号:
<p>
序号:66085 发表者:ljl 发表日期:2003-12-22 15:22:43
<br>主题:关于vector的引用出错的问题
<br>内容:#include &lt;vector&gt;<BR>#include &lt;iostream&gt;<BR>using namespace std;<BR><BR>int ia[10]={5,2,7,8,4,8,1,9,3,6};<BR><BR>template &lt;class elemType&gt;<BR>elemType<BR>min( const vector&lt;elemType&gt; &amp;vec )<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;//fail<BR>&nbsp;&nbsp;&nbsp;&nbsp;elemType minValue = vec[0];<BR>&nbsp;&nbsp;&nbsp;&nbsp;vector&lt;elemType&gt;::iterator iter = vec.begin();&nbsp;&nbsp;&nbsp;&nbsp;//为什么这里begin()返回的是const<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(; iter != vec.end(); ++iter )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;minValue = (*iter &lt; minValue) ? *iter : minValue;<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;//OK<BR>/*&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;elemType minValue = vec[0];<BR>&nbsp;&nbsp;&nbsp;&nbsp;vector&lt;elemType&gt; vcopy(vec);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//重新定义了一个临时变量vcopy<BR>&nbsp;&nbsp;&nbsp;&nbsp;vector&lt;elemType&gt;::iterator iter = vcopy.begin();&nbsp;&nbsp;&nbsp;&nbsp;//为什么这里begin()返回的却是int*<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(; iter != vcopy.end(); ++iter )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;minValue = (*iter &lt; minValue) ? *iter : minValue;<BR>*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;return minValue;<BR>}<BR><BR>int main()<BR>{&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;vector&lt;int&gt; myArray(ia, ia + 10);<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; &#34;The min value is: &#34; &lt;&lt; min(myArray) &lt;&lt; endl;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;system(&#34;pause&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;return 0;<BR>}<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:林建华 回复日期:2003-12-22 16:03:17
<br>内容:你自己定义的函数里面template &lt;class elemType&gt;<BR>elemType<BR>min( const vector&lt;elemType&gt; &amp;vec )是const啊<BR>把const去掉就好了
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:ljl 回复日期:2003-12-22 17:04:29
<br>内容:这是c++ primer上的一个例子,它就给了那样的函数声明让写定义,我就写了第一个,却出错,假如不改声明还有别的解决办法么?总觉得我的第2种在定义一个临时变量不太完美:)
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:林建华 回复日期:2003-12-22 19:30:15
<br>内容:&nbsp;&nbsp;&nbsp;&nbsp;vector&lt;elemType&gt;::iterator iter = (int *)vec.begin();&nbsp;&nbsp;&nbsp;&nbsp;//为什么这里begin()返回的是const<BR>
<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 + -