<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://www.ecured.cu/index.php?action=history&amp;feed=atom&amp;title=Iteradores_de_inserci%C3%B3n_%28Programaci%C3%B3n%29</id>
	<title>Iteradores de inserción (Programación) - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://www.ecured.cu/index.php?action=history&amp;feed=atom&amp;title=Iteradores_de_inserci%C3%B3n_%28Programaci%C3%B3n%29"/>
	<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Iteradores_de_inserci%C3%B3n_(Programaci%C3%B3n)&amp;action=history"/>
	<updated>2026-08-16T12:02:55Z</updated>
	<subtitle>Historial de revisiones para esta página en el wiki</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Iteradores_de_inserci%C3%B3n_(Programaci%C3%B3n)&amp;diff=3443498&amp;oldid=prev</id>
		<title>Javiermartin jc: Texto reemplazado: «&lt;div align=&quot;justify&quot;&gt;» por «»</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Iteradores_de_inserci%C3%B3n_(Programaci%C3%B3n)&amp;diff=3443498&amp;oldid=prev"/>
		<updated>2019-07-06T18:28:55Z</updated>

		<summary type="html">&lt;p&gt;Texto reemplazado: «&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt;» por «»&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 18:28 6 jul 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Línea 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt;&lt;/del&gt;{{Definición|Nombre= Iteradores de inserción (Programación)|imagen= |concepto= Es un tipo especial de Iterador de salida (Output iterator) que permite realizar inserciones sobre un contenedor}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Definición|Nombre= Iteradores de inserción (Programación)|imagen= |concepto= Es un tipo especial de Iterador de salida (Output iterator) que permite realizar inserciones sobre un contenedor}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Iteradores de inserción (Programación)'''. Este tipo de iterador (insert_iterator) se diferencia de los [[Iteradores de salida (Programación)|iteradores de salida]] estándar en que en vez de sustituciones, realiza inserciones en el contenedor de salida. Esto permite efectuar operaciones del tipo realizado por el [[Algoritmo|algoritmo]] copy en contenedores de longitud variable, tales como listas y sets, al tiempo que permite al programador desentenderse de comprobar que el contenedor de salida es suficiente para albergar el rango de entrada.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Iteradores de inserción (Programación)'''. Este tipo de iterador (insert_iterator) se diferencia de los [[Iteradores de salida (Programación)|iteradores de salida]] estándar en que en vez de sustituciones, realiza inserciones en el contenedor de salida. Esto permite efectuar operaciones del tipo realizado por el [[Algoritmo|algoritmo]] copy en contenedores de longitud variable, tales como listas y sets, al tiempo que permite al programador desentenderse de comprobar que el contenedor de salida es suficiente para albergar el rango de entrada.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Javiermartin jc</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Iteradores_de_inserci%C3%B3n_(Programaci%C3%B3n)&amp;diff=1736420&amp;oldid=prev</id>
		<title>Majibacoa2 jc en 16:23 19 nov 2012</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Iteradores_de_inserci%C3%B3n_(Programaci%C3%B3n)&amp;diff=1736420&amp;oldid=prev"/>
		<updated>2012-11-19T16:23:23Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 16:23 19 nov 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l59&quot; &gt;Línea 59:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 59:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*[[Iteradores de entrada (Programación)|Iteradores de entrada (Programación)]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*[[Iteradores de entrada (Programación)|Iteradores de entrada (Programación)]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*[[Iteradores de salida (Programación)|Iteradores de salida (Programación)]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*[[Iteradores de salida (Programación)|Iteradores de salida (Programación)]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*[[Manipulación de Iteradores (Programación)|Manipulación de Iteradores (Programación)]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Fuente ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Fuente ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Majibacoa2 jc</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Iteradores_de_inserci%C3%B3n_(Programaci%C3%B3n)&amp;diff=1735619&amp;oldid=prev</id>
		<title>Majibacoa2 jc en 19:58 18 nov 2012</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Iteradores_de_inserci%C3%B3n_(Programaci%C3%B3n)&amp;diff=1735619&amp;oldid=prev"/>
		<updated>2012-11-18T19:58:16Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 19:58 18 nov 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot; &gt;Línea 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Justificación==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Justificación==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Normalmente la asignación a la deferencia de un iterador (expresiones del tipo *SomeIterator = Value;) se utilizan para sobrescribir el valor del miembro señalado por el [[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Iterador &lt;/del&gt;(Programación)|iterador]]. Por ejemplo, la siguiente invocación al algoritmo copy copia los miembros de un contenedor en otro, aunque el contenedor de destino debe estar definido y correctamente construido con el tamaño adecuado &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Normalmente la asignación a la deferencia de un iterador (expresiones del tipo *SomeIterator = Value;) se utilizan para sobrescribir el valor del miembro señalado por el [[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Iteradores &lt;/ins&gt;(Programación)|iterador]]. Por ejemplo, la siguiente invocación al algoritmo copy copia los miembros de un contenedor en otro, aunque el contenedor de destino debe estar definido y correctamente construido con el tamaño adecuado &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; vector&amp;lt;int&amp;gt; v1(10);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; vector&amp;lt;int&amp;gt; v1(10);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; vector&amp;lt;int&amp;gt; v2(10);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; vector&amp;lt;int&amp;gt; v2(10);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l10&quot; &gt;Línea 10:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 10:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; copy (v1.begin(), v1.end(), v2.begin());&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; copy (v1.begin(), v1.end(), v2.begin());&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; copy (v1.begin(), v1.end(), L1.begin());&amp;#160; &amp;#160; §1a&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; copy (v1.begin(), v1.end(), L1.begin());&amp;#160; &amp;#160; §1a&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;La última [[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Sentencia &lt;/del&gt;(Programación)|sentencia]] muestra como incluso pueden sobrescribirse mediante este algoritmo contenedores de distinta clase&amp;#160; (asumiendo que sus miembros sean del mismo tipo).&amp;#160; En este ejemplo, el contenedor L1 tiene al menos, diez elementos, que son sustituidos por los miembros de v1.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;La última [[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Sentencias &lt;/ins&gt;(Programación)|sentencia]] muestra como incluso pueden sobrescribirse mediante este algoritmo contenedores de distinta clase&amp;#160; (asumiendo que sus miembros sean del mismo tipo).&amp;#160; En este ejemplo, el contenedor L1 tiene al menos, diez elementos, que son sustituidos por los miembros de v1.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Algunos contenedores de la STL, como los tipos list y set,&amp;#160; tienen la capacidad de crecer de forma dinámica a medida que se incluyen nuevos miembros. En estos casos puede ser más apropiado insertar de nuevos elementos antes que sobrescribir los antiguos. La STL ofrece iteradores específicos que permiten que algoritmos como el anterior, inserten un nuevo elemento en la posición señalada antes que sobrescribir el existente (evidentemente esta operación supone un aumento de tamaño del contenedor). Por ejemplo, sustituyendo el tercer argumento de la última sentencia del ejemplo por un iterador de inserción:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Algunos contenedores de la STL, como los tipos list y set,&amp;#160; tienen la capacidad de crecer de forma dinámica a medida que se incluyen nuevos miembros. En estos casos puede ser más apropiado insertar de nuevos elementos antes que sobrescribir los antiguos. La STL ofrece iteradores específicos que permiten que algoritmos como el anterior, inserten un nuevo elemento en la posición señalada antes que sobrescribir el existente (evidentemente esta operación supone un aumento de tamaño del contenedor). Por ejemplo, sustituyendo el tercer argumento de la última sentencia del ejemplo por un iterador de inserción:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; copy (v1.begin(), v1.end(), front_inserter(L1));&amp;#160;  §1b&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; copy (v1.begin(), v1.end(), front_inserter(L1));&amp;#160;  §1b&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Majibacoa2 jc</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Iteradores_de_inserci%C3%B3n_(Programaci%C3%B3n)&amp;diff=1735617&amp;oldid=prev</id>
		<title>Majibacoa2 jc: Página creada con '&lt;div align=&quot;justify&quot;&gt;{{Definición|Nombre= Iteradores de inserción (Programación)|imagen= |concepto= Es un tipo especial de Iterador de salida (Output iterator) que permite re...'</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Iteradores_de_inserci%C3%B3n_(Programaci%C3%B3n)&amp;diff=1735617&amp;oldid=prev"/>
		<updated>2012-11-18T19:56:42Z</updated>

		<summary type="html">&lt;p&gt;Página creada con &amp;#039;&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt;{{Definición|Nombre= Iteradores de inserción (Programación)|imagen= |concepto= Es un tipo especial de Iterador de salida (Output iterator) que permite re...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt;{{Definición|Nombre= Iteradores de inserción (Programación)|imagen= |concepto= Es un tipo especial de Iterador de salida (Output iterator) que permite realizar inserciones sobre un contenedor}}&lt;br /&gt;
'''Iteradores de inserción (Programación)'''. Este tipo de iterador (insert_iterator) se diferencia de los [[Iteradores de salida (Programación)|iteradores de salida]] estándar en que en vez de sustituciones, realiza inserciones en el contenedor de salida. Esto permite efectuar operaciones del tipo realizado por el [[Algoritmo|algoritmo]] copy en contenedores de longitud variable, tales como listas y sets, al tiempo que permite al programador desentenderse de comprobar que el contenedor de salida es suficiente para albergar el rango de entrada.&lt;br /&gt;
 &lt;br /&gt;
==Justificación==&lt;br /&gt;
Normalmente la asignación a la deferencia de un iterador (expresiones del tipo *SomeIterator = Value;) se utilizan para sobrescribir el valor del miembro señalado por el [[Iterador (Programación)|iterador]]. Por ejemplo, la siguiente invocación al algoritmo copy copia los miembros de un contenedor en otro, aunque el contenedor de destino debe estar definido y correctamente construido con el tamaño adecuado &lt;br /&gt;
 vector&amp;lt;int&amp;gt; v1(10);&lt;br /&gt;
 vector&amp;lt;int&amp;gt; v2(10);&lt;br /&gt;
 list&amp;lt;int&amp;gt; L1;&lt;br /&gt;
 ...&lt;br /&gt;
 copy (v1.begin(), v1.end(), v2.begin());&lt;br /&gt;
 copy (v1.begin(), v1.end(), L1.begin());    §1a&lt;br /&gt;
La última [[Sentencia (Programación)|sentencia]] muestra como incluso pueden sobrescribirse mediante este algoritmo contenedores de distinta clase  (asumiendo que sus miembros sean del mismo tipo).  En este ejemplo, el contenedor L1 tiene al menos, diez elementos, que son sustituidos por los miembros de v1.&lt;br /&gt;
Algunos contenedores de la STL, como los tipos list y set,  tienen la capacidad de crecer de forma dinámica a medida que se incluyen nuevos miembros. En estos casos puede ser más apropiado insertar de nuevos elementos antes que sobrescribir los antiguos. La STL ofrece iteradores específicos que permiten que algoritmos como el anterior, inserten un nuevo elemento en la posición señalada antes que sobrescribir el existente (evidentemente esta operación supone un aumento de tamaño del contenedor). Por ejemplo, sustituyendo el tercer argumento de la última sentencia del ejemplo por un iterador de inserción:&lt;br /&gt;
 copy (v1.begin(), v1.end(), front_inserter(L1));   §1b&lt;br /&gt;
Se evita la necesidad de que el contenedor L1 tenga que tener inicialmente diez elementos. Podría estar inicialmente vacío, y el algoritmo copy lo llenaría con el contenido del vector v1.&lt;br /&gt;
 &lt;br /&gt;
==  Descripción==&lt;br /&gt;
El algoritmo copy acepta tres iteradores; los dos primeros delimitan el rango de entrada, y el tercero el principio del rango de salida.  Es interesante observar que en la sentencia anterior, los rangos de entrada está definidos mediante los valores devueltos por las [[Función (Programación)|funciones]] begin() y end(), que son métodos de la clase vector.  En cambio, el tercer argumento es el valor devuelto por una función genérica front_inserter() que responde a la siguiente declaración:&lt;br /&gt;
 template &amp;lt;class Container&amp;gt;&lt;br /&gt;
   front_insert_iterator&amp;lt;Container&amp;gt; front_inserter(Container&amp;amp; x)&lt;br /&gt;
&lt;br /&gt;
La función recibe un contenedor x (por referencia), y devuelve una instancia de la clase front_insert_iterator para el objeto x en cuestión.  Este objeto es un iterador que permite al algoritmo copy insertar elementos al principio del contenedor x.&lt;br /&gt;
==Tipos de iterador de inserción==&lt;br /&gt;
Existen tres formas de iterador de inserción según la posición del contenedor de salida en que esta se realice: al principio; al final; o en una posición cualquiera definida por el usuario.&lt;br /&gt;
=== Inserción al principio===&lt;br /&gt;
Los iteradores de inserción al principio de un contenedor, son instancias de la clase  front_insert_iterator.  La forma de obtenerlos para un contenedor determinado c, es mediante una invocación a la función genérica front_inserter(c).&lt;br /&gt;
===Inserción al final===&lt;br /&gt;
Los iteradores que permiten insertar elementos al final de un contenedor son instancias de la clase back_insert_iterator. La forma de obtenerlos para un contenedor c determinado es también mediante el valor devuelto por una función genérica: back_inserter(c).  El prototipo de esta función es el siguiente:&lt;br /&gt;
 template &amp;lt;class Container&amp;gt;&lt;br /&gt;
   back_insert_iterator&amp;lt;Container&amp;gt; back_inserter (Container&amp;amp; x)&lt;br /&gt;
Este tipo de iterador puede usarse para insertar elementos al final de estructuras deque, list y vector, pero no con map o set.&lt;br /&gt;
=== Inserción intermedia===&lt;br /&gt;
Existe un tercer tipo de iteradores, objetos derivados de la clase insert_iterator, que permiten insertar elementos en cualquier posición de un contenedor.  La interfaz de esta clase genérica, definida como todas las demás en el subespacio std, es la siguiente:&lt;br /&gt;
 template &amp;lt;class Container&amp;gt;&lt;br /&gt;
  class insert_iterator :&lt;br /&gt;
  public iterator&amp;lt;output_iterator_tag,void,void,void,void&amp;gt; {&lt;br /&gt;
  protected:&lt;br /&gt;
    Container* container;&lt;br /&gt;
    typename Container::iterator iter;&lt;br /&gt;
  public:&lt;br /&gt;
    typedef Container container_type;&lt;br /&gt;
    insert_iterator(Container&amp;amp; x, typename Container::iterator i);&lt;br /&gt;
    insert_iterator&amp;lt;Container&amp;gt;&amp;amp;&lt;br /&gt;
       operator=(typename Container::const_reference value);&lt;br /&gt;
    insert_iterator&amp;lt;Container&amp;gt;&amp;amp; operator*();&lt;br /&gt;
    insert_iterator&amp;lt;Container&amp;gt;&amp;amp; operator++();&lt;br /&gt;
    insert_iterator&amp;lt;Container&amp;gt;&amp;amp; operator++(int);&lt;br /&gt;
 };&lt;br /&gt;
Para crear un iterador que permita insertar elementos en la posición pos de un contenedor c concreto, puede utilizarse el constructor de la clase, aunque es preferible utilizar el valor devuelto por la función inserter().  Esta función genérica responde a la siguiente declaración:&lt;br /&gt;
 template &amp;lt;class Container, class Iterator&amp;gt;&lt;br /&gt;
   insert_iterator&amp;lt;Container&amp;gt; inserter(Container&amp;amp; c, Iterator pos);&lt;br /&gt;
Devuelve un iterador del tipo insert_iterator construido &amp;quot;ex profeso&amp;quot; para insertar elementos en la posición inmediatamente anterior a la señalada por el argumento pos del contenedor c.  Este tipo de iterador puede ser utilizado con los contenedores deque, list y vector.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== Puede Consultar ==&lt;br /&gt;
*[[Función (programación)|Función (programación)]]&lt;br /&gt;
*[[Operadores|Operadores]] &lt;br /&gt;
*[[Sentencias (Programación)|Sentencias (Programación)]]&lt;br /&gt;
*[[Iteradores (Programación)|Iteradores (Programación)]]&lt;br /&gt;
*[[Iteradores de entrada (Programación)|Iteradores de entrada (Programación)]]&lt;br /&gt;
*[[Iteradores de salida (Programación)|Iteradores de salida (Programación)]]&lt;br /&gt;
 &lt;br /&gt;
== Fuente ==&lt;br /&gt;
* [http://msdn.microsoft.com/es-es/library/dscyy5s0%28v=vs.80%29.aspx Iteradores]&lt;br /&gt;
* [http://msdn.microsoft.com/es-es/library/aa985965.aspx Iteradores de salida]&lt;br /&gt;
* [http://decsai.ugr.es/~jfv/ed1/c++/cdrom4/paginaWeb/stl.htm Iteradores de inserción]&lt;br /&gt;
[[Category:Informática]] [[Category:Lenguajes_de_programación]] [[Category:Programación]]&lt;/div&gt;</summary>
		<author><name>Majibacoa2 jc</name></author>
		
	</entry>
</feed>