Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
twxs
Gabriel Dos Reis wrote:
Patrick Sizun writes:
| Bonjour, | | Y a-t-il une variante de find renvoyant l'index de l'élément trouvé | plutôt qu'un pointeur sur cet élément ? Où doit-on le faire à la main
template<class Iter, class T> inline int my_find(Iter begin, Iter end, const T& value) { return std::find(begin, end, value) - begin; }
-- Gaby
il me semble avoir vu qu'il fallait preferer utiliser std::distance. Je ne sais plus pour quelle raison. quelqu'un peut-il confirmer/infirmer ?
Twxs
Gabriel Dos Reis wrote:
Patrick Sizun <sizun@cea.fr> writes:
| Bonjour,
|
| Y a-t-il une variante de find renvoyant l'index de l'élément trouvé
| plutôt qu'un pointeur sur cet élément ? Où doit-on le faire à la main
template<class Iter, class T>
inline int
my_find(Iter begin, Iter end, const T& value)
{
return std::find(begin, end, value) - begin;
}
-- Gaby
il me semble avoir vu qu'il fallait preferer utiliser std::distance. Je
ne sais plus pour quelle raison. quelqu'un peut-il confirmer/infirmer ?
| Bonjour, | | Y a-t-il une variante de find renvoyant l'index de l'élément trouvé | plutôt qu'un pointeur sur cet élément ? Où doit-on le faire à la main
template<class Iter, class T> inline int my_find(Iter begin, Iter end, const T& value) { return std::find(begin, end, value) - begin; }
-- Gaby
il me semble avoir vu qu'il fallait preferer utiliser std::distance. Je ne sais plus pour quelle raison. quelqu'un peut-il confirmer/infirmer ?
Twxs
Gabriel Dos Reis
Patrick Sizun writes:
| Bonjour, | | Y a-t-il une variante de find renvoyant l'index de l'élément trouvé | plutôt qu'un pointeur sur cet élément ? Où doit-on le faire à la main | ainsi : | | vector<double> data; | ... | double value = 3.; | int index = -1; | for (int i=0; i<data.size(); i++) | if (data[i] == value) { | index = i; | break; | }
template<class Iter, class T> inline int my_find(Iter begin, Iter end, const T& value) { return std::find(begin, end, value) - begin; }
-- Gaby
Patrick Sizun <sizun@cea.fr> writes:
| Bonjour,
|
| Y a-t-il une variante de find renvoyant l'index de l'élément trouvé
| plutôt qu'un pointeur sur cet élément ? Où doit-on le faire à la main
| ainsi :
|
| vector<double> data;
| ...
| double value = 3.;
| int index = -1;
| for (int i=0; i<data.size(); i++)
| if (data[i] == value) {
| index = i;
| break;
| }
template<class Iter, class T>
inline int
my_find(Iter begin, Iter end, const T& value)
{
return std::find(begin, end, value) - begin;
}
| Bonjour, | | Y a-t-il une variante de find renvoyant l'index de l'élément trouvé | plutôt qu'un pointeur sur cet élément ? Où doit-on le faire à la main | ainsi : | | vector<double> data; | ... | double value = 3.; | int index = -1; | for (int i=0; i<data.size(); i++) | if (data[i] == value) { | index = i; | break; | }
template<class Iter, class T> inline int my_find(Iter begin, Iter end, const T& value) { return std::find(begin, end, value) - begin; }
-- Gaby
Gabriel Dos Reis
twxs writes:
| Gabriel Dos Reis wrote: | > Patrick Sizun writes: | > | Bonjour, | > | | Y a-t-il une variante de find renvoyant l'index de l'élément | > trouvé | > | plutôt qu'un pointeur sur cet élément ? Où doit-on le faire à la main | > template<class Iter, class T> | > inline int my_find(Iter begin, Iter end, const T& value) | > { | > return std::find(begin, end, value) - begin; | > } | > -- Gaby | | il me semble avoir vu qu'il fallait preferer utiliser | std::distance. Je ne sais plus pour quelle raison. quelqu'un peut-il | confirmer/infirmer ?
S'il parle d'indice dans un vecteur, alors passer par std::distance est une bonne obfuscation.
-- Gaby
twxs <twxsATT@TTfree.fr> writes:
| Gabriel Dos Reis wrote:
| > Patrick Sizun <sizun@cea.fr> writes:
| > | Bonjour,
| > | | Y a-t-il une variante de find renvoyant l'index de l'élément
| > trouvé
| > | plutôt qu'un pointeur sur cet élément ? Où doit-on le faire à la main
| > template<class Iter, class T>
| > inline int my_find(Iter begin, Iter end, const T& value)
| > {
| > return std::find(begin, end, value) - begin;
| > }
| > -- Gaby
|
| il me semble avoir vu qu'il fallait preferer utiliser
| std::distance. Je ne sais plus pour quelle raison. quelqu'un peut-il
| confirmer/infirmer ?
S'il parle d'indice dans un vecteur, alors passer par std::distance est une
bonne obfuscation.
| Gabriel Dos Reis wrote: | > Patrick Sizun writes: | > | Bonjour, | > | | Y a-t-il une variante de find renvoyant l'index de l'élément | > trouvé | > | plutôt qu'un pointeur sur cet élément ? Où doit-on le faire à la main | > template<class Iter, class T> | > inline int my_find(Iter begin, Iter end, const T& value) | > { | > return std::find(begin, end, value) - begin; | > } | > -- Gaby | | il me semble avoir vu qu'il fallait preferer utiliser | std::distance. Je ne sais plus pour quelle raison. quelqu'un peut-il | confirmer/infirmer ?
S'il parle d'indice dans un vecteur, alors passer par std::distance est une bonne obfuscation.
-- Gaby
Loïc Joly
Gabriel Dos Reis wrote:
Patrick Sizun writes:
| Bonjour, | | Y a-t-il une variante de find renvoyant l'index de l'élément trouvé | plutôt qu'un pointeur sur cet élément ? Où doit-on le faire à la main
template<class Iter, class T> inline int my_find(Iter begin, Iter end, const T& value) { return std::find(begin, end, value) - begin; }
template<class Iter, class T> inline int my_find(Iter begin, Iter end, const T& value, Iter vectorBegin = begin) { return std::find(begin, end, value) - vectorBegin; }
il me semble avoir vu qu'il fallait preferer utiliser std::distance. Je ne sais plus pour quelle raison. quelqu'un peut-il confirmer/infirmer ?
operator- signifie : Si on peut calculer une différence rapidement, calcule la, sinon fait une belle erreur de compilation.
std::distance signifie : Débrouille tout comme tu veux. Cette distance, je la veux à n'importe quel prix.
Et comme la notion d'index n'a d'intérêt que si on peut calculer une distance rapidement...
Au fait, ça me rappelle un question qui traîne dans ma tête depuis quelques temps. Est-ce que ça un un nom en math les ensembles ou on peut soustraire deux éléments, pas en ajouter, et dont la différence est un truc avec lequel on peut faire des additions ou des soustractions, comme par exemple date/durée, itérateur/distance, point/vecteur...
J'ai l'impression que c'est un concept qu'on retrouve assez souvent.
-- Loïc
Gabriel Dos Reis wrote:
Patrick Sizun <sizun@cea.fr> writes:
| Bonjour,
| | Y a-t-il une variante de find renvoyant l'index de l'élément trouvé
| plutôt qu'un pointeur sur cet élément ? Où doit-on le faire à la main
template<class Iter, class T>
inline int my_find(Iter begin, Iter end, const T& value)
{
return std::find(begin, end, value) - begin;
}
template<class Iter, class T>
inline int my_find(Iter begin, Iter end, const T& value,
Iter vectorBegin = begin)
{
return std::find(begin, end, value) - vectorBegin;
}
il me semble avoir vu qu'il fallait preferer utiliser std::distance. Je
ne sais plus pour quelle raison. quelqu'un peut-il confirmer/infirmer ?
operator- signifie : Si on peut calculer une différence rapidement,
calcule la, sinon fait une belle erreur de compilation.
std::distance signifie : Débrouille tout comme tu veux. Cette distance,
je la veux à n'importe quel prix.
Et comme la notion d'index n'a d'intérêt que si on peut calculer une
distance rapidement...
Au fait, ça me rappelle un question qui traîne dans ma tête depuis
quelques temps. Est-ce que ça un un nom en math les ensembles ou on peut
soustraire deux éléments, pas en ajouter, et dont la différence est un
truc avec lequel on peut faire des additions ou des soustractions, comme
par exemple date/durée, itérateur/distance, point/vecteur...
J'ai l'impression que c'est un concept qu'on retrouve assez souvent.
| Bonjour, | | Y a-t-il une variante de find renvoyant l'index de l'élément trouvé | plutôt qu'un pointeur sur cet élément ? Où doit-on le faire à la main
template<class Iter, class T> inline int my_find(Iter begin, Iter end, const T& value) { return std::find(begin, end, value) - begin; }
template<class Iter, class T> inline int my_find(Iter begin, Iter end, const T& value, Iter vectorBegin = begin) { return std::find(begin, end, value) - vectorBegin; }
il me semble avoir vu qu'il fallait preferer utiliser std::distance. Je ne sais plus pour quelle raison. quelqu'un peut-il confirmer/infirmer ?
operator- signifie : Si on peut calculer une différence rapidement, calcule la, sinon fait une belle erreur de compilation.
std::distance signifie : Débrouille tout comme tu veux. Cette distance, je la veux à n'importe quel prix.
Et comme la notion d'index n'a d'intérêt que si on peut calculer une distance rapidement...
Au fait, ça me rappelle un question qui traîne dans ma tête depuis quelques temps. Est-ce que ça un un nom en math les ensembles ou on peut soustraire deux éléments, pas en ajouter, et dont la différence est un truc avec lequel on peut faire des additions ou des soustractions, comme par exemple date/durée, itérateur/distance, point/vecteur...
J'ai l'impression que c'est un concept qu'on retrouve assez souvent.
-- Loïc
Falk Tannhäuser
Loïc Joly wrote:
Au fait, ça me rappelle un question qui traîne dans ma tête depuis quelques temps. Est-ce que ça un un nom en math les ensembles ou on peut soustraire deux éléments, pas en ajouter, et dont la différence est un truc avec lequel on peut faire des additions ou des soustractions, comme par exemple date/durée, itérateur/distance, point/vecteur...
Espace affin ?
Falk
Loïc Joly wrote:
Au fait, ça me rappelle un question qui traîne dans ma tête depuis
quelques temps. Est-ce que ça un un nom en math les ensembles ou on peut
soustraire deux éléments, pas en ajouter, et dont la différence est un
truc avec lequel on peut faire des additions ou des soustractions, comme
par exemple date/durée, itérateur/distance, point/vecteur...
Au fait, ça me rappelle un question qui traîne dans ma tête depuis quelques temps. Est-ce que ça un un nom en math les ensembles ou on peut soustraire deux éléments, pas en ajouter, et dont la différence est un truc avec lequel on peut faire des additions ou des soustractions, comme par exemple date/durée, itérateur/distance, point/vecteur...