std::remove_copy, std::remove_copy_if
Da cppreference.com.
|
|
Questa pagina è stata tradotta in modo automatico dalla versione in ineglese della wiki usando Google Translate.
La traduzione potrebbe contenere errori e termini strani. Muovi il puntatore sopra al testo per vedere la versione originale. Puoi aiutarci a correggere gli gli errori. Per ulteriori istruzioni clicca qui. |
<metanoindex/>
<tbody> </tbody>| Elemento definito nell'header <algorithm>
|
||
template< class InputIt, class OutputIt, class T > OutputIt remove_copy( InputIt first, InputIt last, OutputIt d_first, const T& value ); |
(1) | |
template< class InputIt, class OutputIt, class UnaryPredicate > OutputIt remove_copy_if( InputIt first, InputIt last, OutputIt d_first, UnaryPredicate p ); |
(2) | |
Copies elements from the range [first, last), to another range beginning at d_first, omitting the elements which satisfy specific criteria. The first version ignores the elements that are equal to value, the second version ignores the elements for which predicate p returns true. Source and destination ranges cannot overlap.
Parametri
| first, last | - | dell'intervallo di elementi da copiare
Original: the range of elements to copy The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
| d_first | - | the beginning of the destination range. |
| value | - | the value of the elements not to copy |
| Type requirements | ||
-InputIt must meet the requirements of InputIterator.
| ||
-OutputIt must meet the requirements of OutputIterator.
| ||
Valore di ritorno
Iterator all'elemento passato l'ultimo elemento copiato.
Original:
Iterator to the element past the last element copied.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Complessità
Esattamente
last - first applicazioni del predicato.Original:
Exactly
last - first applications of the predicate.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Possibile implementazione
| First version |
|---|
template<class InputIt, class OutputIt, class T>
OutputIt remove_copy(InputIt first, InputIt last,
OutputIt d_first, const T& value)
{
for (; first != last; ++first) {
if (!(*first == value)) {
*d_first++ = *first;
}
}
return d_first;
}
|
| Second version |
template<class InputIt, class OutputIt, class UnaryPredicate>
OutputIt remove_copy_if(InputIt first, InputIt last,
OutputIt d_first, UnaryPredicate p)
{
for (; first != last; ++first) {
if (!p(*first)) {
*d_first++ = *first;
}
}
return d_first;
}
|
Esempio
The following code outputs a string while erasing the spaces on the fly.
#include <algorithm>
#include <iterator>
#include <string>
#include <iostream>
int main()
{
std::string str = "Text with some spaces";
std::cout << "before: " << str << "\n";
std::cout << "after: ";
std::remove_copy(str.begin(), str.end(),
std::ostream_iterator<char>(std::cout), ' ');
std::cout << '\n';
}
Output:
before: Text with some spaces
after: Textwithsomespaces
Vedi anche
rimuove gli elementi che soddisfano criteri specifici Original: removes elements satisfying specific criteria The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (funzione di modello) | |