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

📄 copy_backward.html

📁 指导程序员合理、高效的进行标准模板库编程。
💻 HTML
字号:
<HTML>
<HEAD>
   <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
   <META NAME="Author" CONTENT="Zafir Anjum">
   <TITLE>MFC Programmer's SourceBook : STL Programmer's Guide</TITLE>
    <META name="description" 
     content="A freely available implementation 
     of the C++ Standard Template Library, including 
     hypertext documentation.">
	<META name="keywords" 
	content="generic programming, STL, standard template library">
</HEAD>

<SCRIPT LANGUAGE="JavaScript"><!--
var adcategory = "cpp";
// -->
</SCRIPT>
<body background="../../fancyhome/back.gif" bgcolor="#FFFFFF" >
<SCRIPT LANGUAGE="JavaScript"><!--
var nfrm = location.href.indexOf("_nfrm_");
var validframes = (top.frames.length > 0 && top.frames['ad'] && top.frames['logo'] );
var random = Math.random();

if( !validframes && nfrm == -1 )
{
	var dclkPage = "www.codeguru.com/";
	if( self.adcategory )
		dclkPage += adcategory;
	else
		dclkPage += "mfc";
	document.write('<nolayer><center>');
	document.write('<iframe src="http://ad.doubleclick.net/adi/' + dclkPage + ';ord='
	 + random + '" width=470 height=62 marginwidth=0 marginheight=0 hspace=0 vspace=0 '
	 + 'frameborder=0 scrolling=no bordercolor="#000000">');
	document.write('<a href="http://ad.doubleclick.net/jump/' + dclkPage + ';ord='
	 + random + '">');
	document.write('<img src="http://ad.doubleclick.net/ad/' + dclkPage + ';ord='
	 + random + '" height=60 width=468>' + '</a>');
	document.write('</iframe>');
	document.write('</center></nolayer>');
	document.write('<layer  src="http://ad.doubleclick.net/adl/' + dclkPage + 
	 ';ord=' + random + '"></layer>');
	document.write('<ilayer visibility=hide width=468 height=83></ilayer>');
}


//		top.location = "/show.cgi?" + adcategory + "=" + location.pathname;


// -->
</SCRIPT>
<noscript>
<p align="center">
<a href="http://ad.doubleclick.net/jump/www.codeguru.com/cpp;ord=Nupa4NFCY34AAHkEHeQ">
<img src="http://ad.doubleclick.net/ad/www.codeguru.com/cpp;ord=Nupa4NFCY34AAHkEHeQ"></a>
</p>
</noscript>





<BR Clear>
<H1>copy_backward</H1>

<Table CellPadding=0 CellSpacing=0 width=100%>
<TR>
<TD Align=left><Img src = "algorithms.gif" Alt=""   WIDTH = "194"  HEIGHT = "38" ></TD>
<TD Align=right><Img src = "function.gif" Alt=""   WIDTH = "194"  HEIGHT = "38" ></TD>
</TR>
<TR>
<TD Align=left VAlign=top><b>Category</b>: algorithms</TD>
<TD Align=right VAlign=top><b>Component type</b>: function</TD>
</TR>
</Table>

<h3>Prototype</h3>
<pre>
template &lt;class <A href="BidirectionalIterator.html">BidirectionalIterator</A>1, class <A href="BidirectionalIterator.html" tppabs="http://www.sgi.com/Technology/STL/BidirectionalIterator.shtml">BidirectionalIterator</A>2&gt;
BidirectionalIterator2 copy_backward(BidirectionalIterator1 first, 
                                     BidirectionalIterator1 last, 
                                     BidirectionalIterator2 result);
</pre>                   
<h3>Description</h3>
<tt>Copy_backward</tt> copies elements from the range <tt>[first, last)</tt> to the range
<tt>[result - (last - first), result)</tt> <A href="#1">[1]</A>.  That is, it performs the 
assignments <tt>*(result - 1) = *(last - 1)</tt>, <tt>*(result - 2) = *(last - 2)</tt>, 
and so on.   Generally, for every integer <tt>n</tt> from <tt>0</tt> to <tt>last - first</tt>,
<tt>copy_backward</tt> performs the assignment <tt>*(result - n - 1) = *(last - n - 1)</tt>.
Assignments are performed from the end of the input sequence to the 
beginning, <i>i.e.</i> in order of increasing <tt>n</tt>. <A href="#2">[2]</A>
<P>
The return value is <tt>result - (last - first)</tt>
<h3>Definition</h3>
Declared in <A href="algo.h">algo.h</A>.  The implementation is in <A href="algobase.h" tppabs="http://www.sgi.com/Technology/STL/algobase.h">algobase.h</A>.
<h3>Requirements on types</h3>
<UL>
<LI>
BidirectionalIterator1 and BidirectionalIterator2 are
   models of <A href="BidirectionalIterator.html">BidirectionalIterator</A>.
<LI>
BidirectionalIterator1's value type is convertible to
   BidirectionalIterator2's value type.
</UL>
<h3>Preconditions</h3>
<UL>
<LI>
<tt>[first, last)</tt> is a valid range.
<LI>
<tt>result</tt> is not an iterator within the range <tt>[first, last)</tt>.
<LI>
There is enough space to hold all of the elements being copied.
   More formally, the requirement is that 
   <tt>[result - (last - first), result)</tt> is a valid range.
</UL>
<h3>Complexity</h3>
Linear.  Exactly <tt>last - first</tt> assignments are performed.
<h3>Example</h3>
<pre>
<A href="Vector.html">vector</A>&lt;int&gt; V(15);
<A href="iota.html">iota</A>(V.begin(), V.end(), 1);
copy_backward(V.begin(), V.begin() + 10, V.begin() + 15);
</pre>
<h3>Notes</h3>
<P><A name="1">[1]</A>
<tt>Result</tt> is an iterator that points to the <i>end</i> of the output
range.  This is highly unusual: in all other STL algorithms that
denote an output range by a single iterator, that iterator points to
the beginning of the range.
<P><A name="2">[2]</A>
The order of assignments matters in the case where the input and
output ranges overlap:  <tt>copy_backward</tt> may not be used if <tt>result</tt> is
in the range <tt>[first, last)</tt>.  That is, it may not be used if the
end of the output range overlaps with the input range, but it may be
used if the beginning of the output range overlaps with the input
range; <tt><A href="copy.html">copy</A></tt> has opposite restrictions.
If the two ranges are completely nonoverlapping, of course, then
either algorithm may be used.
<h3>See also</h3>
<tt><A href="copy.html">copy</A></tt>, <tt><A href="copy_n.html" tppabs="http://www.sgi.com/Technology/STL/copy_n.shtml">copy_n</A></tt>

<HR SIZE="6"> <FONT SIZE="-2"> Copyright &copy; 1996 Silicon Graphics, Inc.
<HR>
<TABLE BORDER=0 WIDTH="100%" >
<TR>
<TD WIDTH="33%"><FONT SIZE=-1><A HREF="index.html" >
STL</A></FONT></TD>

<TD WIDTH="33%">
<CENTER><FONT SIZE=-2>&copy; Copyright 1997-1998 CodeGuru</FONT>&nbsp;</CENTER>
</TD>

<TD WIDTH="34%">
<DIV ALIGN=right><FONT SIZE=-1>Contact : <A HREF="mailto:webmaster@codeguru.com">webmaster@codeguru.com</A>&nbsp;</FONT></DIV>
</TD>
</TR>
</TABLE>
<SCRIPT LANGUAGE="JavaScript" ><!--
var adurl = "/cgi-bin/doubleclick.cgi?";

if( self.adcategory )
	adurl += adcategory;
else
	adurl += "mfc";

if( self.parent.norefreshad )
	parent.norefreshad = false;
else if( validframes )
	parent.frames['ad'].location = adurl;



if( !validframes && nfrm == -1)
{
	var dclkPage = "www.codeguru.com/";
	if( self.adcategory )
		dclkPage += adcategory;
	else 
		dclkPage += "mfc";
//	var random = Math.random();
	document.write('<nolayer><center>');
	document.write('<iframe src="http://ad.doubleclick.net/adi/' + dclkPage + ';ord='
	 + random + '" width=470 height=62 marginwidth=0 marginheight=0 hspace=0 vspace=0 '
	 + 'frameborder=0 scrolling=no bordercolor="#000000">');
	document.write('<a href="http://ad.doubleclick.net/jump/' + dclkPage + ';ord='
	 + random + '">');
	document.write('<img src="http://ad.doubleclick.net/ad/' + dclkPage + ';ord='
	 + random + '" height=60 width=468>' + '</a>');
	document.write('</iframe>');
	document.write('</center></nolayer>');
	document.write('<layer  src="http://ad.doubleclick.net/adl/' + dclkPage + 
	 ';ord=' + random + '"></layer>');
	document.write('<ilayer visibility=hide width=468 height=83></ilayer>');
}

// -->
</SCRIPT> 
<!-- SCRIPT LANGUAGE="JavaScript" SRC="/global/fscript.js">
//
</SCRIPT --> 

<noscript>
<p align="center">
<a href="http://ad.doubleclick.net/jump/www.codeguru.com/cpp;ord=Nupa4NFCY34AAHkEHeQ">
<img src="http://ad.doubleclick.net/ad/www.codeguru.com/cpp;ord=Nupa4NFCY34AAHkEHeQ"></a>
</p>
</noscript>





</BODY>
</HTML>


⌨️ 快捷键说明

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