Namespace
Varianti

cpp/algorithm/mismatch: differenze tra le versioni

Da cppreference.com.
< cpp‎ | algorithm
m (r2.7.3) (Bot: Aggiungo de, en, fr, ja, pt, zh)
m (Use {{lc}}. Update links. Various fixes.)
 
Riga 2: Riga 2:
 
{{cpp/title|mismatch}}
 
{{cpp/title|mismatch}}
 
{{cpp/algorithm/navbar}}
 
{{cpp/algorithm/navbar}}
{{ddcl list begin}}
+
{{begin}}
{{ddcl list header | algorithm}}
+
{{header | algorithm}}
{{ddcl list item | num=1 |
+
{{| num=1 |
 
template< class InputIt1, class InputIt2 >
 
template< class InputIt1, class InputIt2 >
 
std::pair<InputIt1,InputIt2>
 
std::pair<InputIt1,InputIt2>
Riga 11: Riga 11:
 
               InputIt2 first2 );
 
               InputIt2 first2 );
 
}}
 
}}
{{ddcl list item | num=2 |
+
{{| num=2 |
 
template< class InputIt1, class InputIt2, class BinaryPredicate >
 
template< class InputIt1, class InputIt2, class BinaryPredicate >
 
std::pair<InputIt1,InputIt2>
 
std::pair<InputIt1,InputIt2>
Riga 19: Riga 19:
 
               BinaryPredicate p );
 
               BinaryPredicate p );
 
}}
 
}}
{{ddcl list end}}
+
{{end}}
  
 
{{tr|Restituisce la prima coppia di elementi di mismatching da due gruppi: quello definito dalla {{tt|[first1, last1)}} e un altro a partire da {{tt|first2}}. La prima versione della funzione utilizza {{tt|operator{{==}}}} per confrontare gli elementi, la seconda versione utilizza il predicato binario dato {{tt|p}}. |Returns the first mismatching pair of elements from two ranges: one defined by {{tt|[first1, last1)}} and another starting at {{tt|first2}}. The first version of the function uses {{tt|operator{{==}}}} to compare the elements, the second version uses the given binary predicate {{tt|p}}. }}
 
{{tr|Restituisce la prima coppia di elementi di mismatching da due gruppi: quello definito dalla {{tt|[first1, last1)}} e un altro a partire da {{tt|first2}}. La prima versione della funzione utilizza {{tt|operator{{==}}}} per confrontare gli elementi, la seconda versione utilizza il predicato binario dato {{tt|p}}. |Returns the first mismatching pair of elements from two ranges: one defined by {{tt|[first1, last1)}} and another starting at {{tt|first2}}. The first version of the function uses {{tt|operator{{==}}}} to compare the elements, the second version uses the given binary predicate {{tt|p}}. }}
  
 
===Parametri===
 
===Parametri===
{{param list begin}}
+
{{begin}}
{{param list item | first1, last1 |{{tr| la prima serie di elementi| the first range of the elements}}}}
+
{{| first1, last1 |{{tr| la prima serie di elementi| the first range of the elements}}}}
{{param list item | first2 |{{tr| all'inizio del secondo intervallo di elementi| the beginning of the second range of the elements}}}}
+
{{| first2 |{{tr| all'inizio del secondo intervallo di elementi| the beginning of the second range of the elements}}}}
{{param list pred2 eq | p | p1=InputIt1 | p2=InputIt2}}
+
{{pred2 eq | p | p1=InputIt1 | p2=InputIt2}}
{{param list hreq}}
+
{{hreq}}
{{param list req concept | InputIt1 | InputIterator}}
+
{{req concept | InputIt1 | InputIterator}}
{{param list req concept | InputIt2 | InputIterator}}
+
{{req concept | InputIt2 | InputIterator}}
{{param list req concept | OutputIt | OutputIterator}}
+
{{req concept | OutputIt | OutputIterator}}
{{param list end}}
+
{{end}}
  
 
===Valore di ritorno===
 
===Valore di ritorno===
{{tr|{{c|std::pair}} con iteratori alle prime due non equivalenti elementi, o, in mancanza di elementi diversi trovato, coppia con {{tt|last1}} e l'iteratore corrispondente dal secondo intervallo.|{{c|std::pair}} with iterators to the first two non-equivalent elements, or, if no different elements found, pair with {{tt|last1}} and the corresponding iterator from the second range.}}
+
{{tr|{{|std::pair}} con iteratori alle prime due non equivalenti elementi, o, in mancanza di elementi diversi trovato, coppia con {{tt|last1}} e l'iteratore corrispondente dal secondo intervallo.|{{|std::pair}} with iterators to the first two non-equivalent elements, or, if no different elements found, pair with {{tt|last1}} and the corresponding iterator from the second range.}}
  
 
===Complessità===
 
===Complessità===
Riga 92: Riga 92:
  
 
===Vedi anche===
 
===Vedi anche===
{{dcl list begin}}
+
{{begin}}
{{dcl list template | cpp/algorithm/dcl list equal}}
+
{{| cpp/algorithm/equal}}
{{dcl list template | cpp/algorithm/dcl list find}}
+
{{| cpp/algorithm/find}}
{{dcl list template | cpp/algorithm/dcl list lexicographical_compare}}
+
{{| cpp/algorithm/lexicographical_compare}}
{{dcl list template | cpp/algorithm/dcl list search}}
+
{{| cpp/algorithm/search}}
{{dcl list end}}
+
{{end}}
  
 
[[de:cpp/algorithm/mismatch]]
 
[[de:cpp/algorithm/mismatch]]

Versione attuale delle 12:23, 2 lug 2013

 
 
Algoritmo libreria
Funzioni
Original:
Functions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Non modifica le operazioni di sequenza
Original:
Non-modifying sequence operations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
all_of
any_of
none_of
(C++11)
(C++11)
(C++11)
for_each
count
count_if
mismatch
equal
Modifica delle operazioni di sequenza
Original:
Modifying sequence operations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Partizionamento operazioni
Original:
Partitioning operations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Ordinamento delle operazioni (su intervalli ordinati)
Original:
Sorting operations (on sorted ranges)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Binarie (le operazioni di ricerca sui campi ordinati)
Original:
Binary search operations (on sorted ranges)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Impostare le operazioni (su intervalli ordinati)
Original:
Set operations (on sorted ranges)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Heap operazioni
Original:
Heap operations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Minimo / massimo le operazioni
Original:
Minimum/maximum operations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Operazioni numeriche
Original:
Numeric operations
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Libreria C
Original:
C library
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
 
Elemento definito nell'header <algorithm>
template< class InputIt1, class InputIt2 >

std::pair<InputIt1,InputIt2>
    mismatch( InputIt1 first1,
              InputIt1 last1,

              InputIt2 first2 );
(1)
template< class InputIt1, class InputIt2, class BinaryPredicate >

std::pair<InputIt1,InputIt2>
    mismatch( InputIt1 first1,
              InputIt1 last1,
              InputIt2 first2,

              BinaryPredicate p );
(2)
Restituisce la prima coppia di elementi di mismatching da due gruppi: quello definito dalla [first1, last1) e un altro a partire da first2. La prima versione della funzione utilizza operator== per confrontare gli elementi, la seconda versione utilizza il predicato binario dato p.
Original:
Returns the first mismatching pair of elements from two ranges: one defined by [first1, last1) and another starting at first2. The first version of the function uses operator== to compare the elements, the second version uses the given binary predicate p.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Indice

[modifica] Parametri

first1, last1 -
la prima serie di elementi
Original:
the first range of the elements
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
first2 -
all'inizio del secondo intervallo di elementi
Original:
the beginning of the second range of the elements
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
p - binary predicate which returns ​true if the elements should be treated as equal.

The signature of the predicate function should be equivalent to the following:

 bool pred(const Type1 &a, const Type2 &b);

The signature does not need to have const &, but the function must not modify the objects passed to it.
The types  Type1 and  Type2 must be such that objects of types InputIt1 and InputIt2 can be dereferenced and then implicitly converted to  Type1 and  Type2 respectively.

Type requirements
-
InputIt1 must meet the requirements of InputIterator.
-
InputIt2 must meet the requirements of InputIterator.
-
OutputIt must meet the requirements of OutputIterator.

[modifica] Valore di ritorno

std::pair con iteratori alle prime due non equivalenti elementi, o, in mancanza di elementi diversi trovato, coppia con last1 e l'iteratore corrispondente dal secondo intervallo.
Original:
std::pair with iterators to the first two non-equivalent elements, or, if no different elements found, pair with last1 and the corresponding iterator from the second range.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[modifica] Complessità

Al massimo last1 - first1 applicazioni del predicato
Original:
At most last1 - first1 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.

[modifica] Possibile implementazione

First version
template<class InputIt1, class InputIt2>
std::pair<InputIt1, InputIt2>
    mismatch(InputIt1 first1, InputIt1 last1, InputIt2 first2)
{
    while (first1 != last1 && *first1 == *first2) {
        ++first1, ++first2;
    }
    return std::make_pair(first1, first2);
}
Second version
template<class InputIt1, class InputIt2, class BinaryPredicate>
std::pair<InputIt1, InputIt2>
    mismatch(InputIt1 first1, InputIt1 last1, InputIt2 first2, BinaryPredicate p)
{
    while (first1 != last1 && p(*first1, *first2)) {
        ++first1, ++first2;
    }
    return std::make_pair(first1, first2);
}

[modifica] Esempio

Questo programma determina la più lunga sottostringa che si trova contemporaneamente all'inizio della stringa specifico e alla fine di esso, in ordine inverso (possibilmente sovrapposti)
Original:
This program determines the the longest substring that is simultaneously found at the very beginning of the given string and at the very end of it, in reverse order (possibly overlapping)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

#include <iostream>
#include <string>
#include <algorithm>
 
std::string mirror_ends(const std::string& in)
{
    return std::string(in.begin(),
                       std::mismatch(in.begin(), in.end(), in.rbegin()).first);
}
 
int main()
{
    std::cout << mirror_ends("abXYZba") << '\n'
              << mirror_ends("abca") << '\n'
              << mirror_ends("aba") << '\n';
}

Output:

ab
a
aba

[modifica] Vedi anche

determina se due serie di elementi sono gli stessi
Original:
determines if two sets of elements are the same
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) [modifica]
trova il primo elemento che soddisfi i criteri specifici
Original:
finds the first element 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) [modifica]
restituisce true se un intervallo è lessicograficamente minore di un altro
Original:
returns true if one range is lexicographically less than another
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) [modifica]
searches for a range of elements
(funzione di modello) [modifica]