📄 copy.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=Nupa3dFCY34AAHgAhlA">
<img src="http://ad.doubleclick.net/ad/www.codeguru.com/cpp;ord=Nupa3dFCY34AAHgAhlA"></a>
</p>
</noscript>
<BR Clear>
<H1>copy</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 <class <A href="InputIterator.html">InputIterator</A>, class <A href="OutputIterator.html" tppabs="http://www.sgi.com/Technology/STL/OutputIterator.shtml">OutputIterator</A>>
OutputIterator copy(InputIterator first, InputIterator last,
OutputIterator result);
</pre>
<h3>Description</h3>
<tt>Copy</tt> copies elements from the range <tt>[first, last)</tt> to the range
<tt>[result, result + (last - first))</tt>. That is, it performs the
assignments <tt>*result = *first</tt>, <tt>*(result + 1) = *(first + 1)</tt>,
and so on. <A href="#1">[1]</A> Generally, for every integer <tt>n</tt> from <tt>0</tt> to <tt>last - first</tt>,
<tt>copy</tt> performs the assignment <tt>*(result + n) = *(first + n)</tt>.
Assignments are performed in forward order, <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">algobase.h</A>.
<h3>Requirements on types</h3>
<UL>
<LI>
InputIterator is a model of <A href="InputIterator.html">Input Iterator</A>.
<LI>
OutputIterator is a model of <A href="OutputIterator.html">Output Iterator</A>.
<LI>
InputIterator's value type is convertible to a type in
OutputIterator's set of value types.
</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, result + (last - first))</tt> is a valid range. <A href="#1">[1]</A>
</UL>
<h3>Complexity</h3>
Linear. Exactly <tt>last - first</tt> assignments are performed.
<h3>Example</h3>
<pre>
<A href="Vector.html">vector</A><int> V(5);
<A href="iota.html">iota</A>(V.begin(), V.end(), 1);
<A href="List.html">list</A><int> L(V.size());
copy(V.begin(), V.end(), L.begin());
assert(<A href="equal.html">equal</A>(V.begin(), V.end(), L.begin()));
</pre>
<h3>Notes</h3>
<P><A name="1">[1]</A>
Note the implications of this. <tt>Copy</tt> cannot be used to insert
elements into an empty <A href="Container.html">Container</A>: it overwrites elements, rather
than inserting elements. If you want to insert elements into a
<A href="Sequence.html">Sequence</A>, you can either use its <tt>insert</tt> member function explicitly,
or else you can use <tt>copy</tt> along with an <tt><A href="insert_iterator.html">insert_iterator</A></tt> adaptor.
<P><A name="2">[2]</A>
The order of assignments matters in the case where the input and
output ranges overlap: <tt>copy</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 beginning of the output range overlaps with the input range, but
it may be used if the end of the output range overlaps with the input
range; <tt><A href="copy_backward.html">copy_backward</A></tt> has opposite restrictions.
If the two ranges are completely nonoverlapping, of course, then
either algorithm may be used.
The order of assignments also matters if <tt>result</tt> is an <tt><A href="ostream_iterator.html">ostream_iterator</A></tt>,
or some other iterator whose semantics depends on the order or assignments.
<h3>See also</h3>
<tt><A href="copy_backward.html">copy_backward</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 © 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>© Copyright 1997-1998 CodeGuru</FONT> </CENTER>
</TD>
<TD WIDTH="34%">
<DIV ALIGN=right><FONT SIZE=-1>Contact : <A HREF="mailto:webmaster@codeguru.com">webmaster@codeguru.com</A> </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=Nupa3dFCY34AAHgAhlA">
<img src="http://ad.doubleclick.net/ad/www.codeguru.com/cpp;ord=Nupa3dFCY34AAHgAhlA"></a>
</p>
</noscript>
</BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -