OVH Cloud OVH Cloud

recherche d'un element suivant la valeur d'un des champs

184 réponses
Avatar
Alain Cabiran
Bonjour,

j'ai cherché, testé, retesté, essayé, réessayé et n'ai pas trouvé
de solution à ce problème

assume using namespace std :-)

imaginons avoir :

class objet
{
public:
objet(int valeur) : monchamps(valeur) { } ;
int getChamps() const { return monchamp; } ;
private:
int monchamps();
};

un conteneur : list<objet> liste;
son iterateur : list<objet>::iterator it;

une valeur prédéfinie : int valeur = 5;

est-ce qu'il est possible, en utilisant les adaptateurs stl,
d'avoir l'équivalent de :

cherche dans liste le premier élément avec la condition
it->monchamp == valeur ?

j'ai commencé par :

it = find_if(liste.begin(), liste.end(), TOTO);

ensuite j'ai cherché TOTO : bind2nd(equal_to<int>(), valeur)

et là ... je sais pas, j'ai essayé de placer :

mem_fun_ref(&objet::getChamps) mais je n'ai pas trouvé où le mettre
et même si je peux seulement l'y mettre.

quelqu'un a une idée ?

Alain Cabiran

ps: il manque évidemment le constructeur de copie, les operateurs de
comparaisons, ... dans la classe, c'est juste pour faire plus court.

10 réponses

Avatar
Fabien LE LEZ
On Tue, 5 Oct 2004 23:41:47 +0200, "Alain Naigeon" :

De toutes façons, la défense nationale restera-t-elle nationale
longtemps, ou sera-t-elle européanisée ?


<HS>
C'est pas demain la veille


On a le temps : il y a peu, certains ont dû travailler sur du code
COBOL qui datait de la nuit des temps ; il est fort possible que du
code C++ écrit aujourd'hui doive être repris en 2038 quand la valeur
de retour de time() ne tiendra plus sur 31 bits...


--
;-)


Avatar
Fabien LE LEZ
On Tue, 5 Oct 2004 23:35:54 +0200, "Alain Naigeon" :

The only problem with your point of view is that it will still
strengthen the domination of English.


C'est totalement inéluctable. Il faut une langue qui permette à deux
personnes prises au hasard de communiquer entre elles. Donc, tu as
trois choix :
- soit tu acceptes la situation actuelle (et la situation future
qui se prépare) ;
- soit tu trouves une langue plus adaptée que l'anglais, et tu
la fais accepter par le reste de la population mondiale[*] ;
- soit tu restes dans ton coin.

OTH, if you write
outstanding programs with French identifiers, even English
speaking people will wish to read them :-)


Mouais... bien souvent, un programme génial est écrit par une équipe
plutôt que par une seule personne. Et plus une équipe est grande, plus
la probabilité que tous les membres soient francophones tend vers 0.



[*] Je précise que je préfère les 52 caractères de l'alphabet utilisé
en anglais, aux milliers de kanjis du chinois. Ben oui, si on laisse
tomber l'anglais, la langue "forte" risque fort d'être le chinois, vu
la population chinoise...


--
;-)

Avatar
Alain Naigeon
"Fabien LE LEZ" a écrit dans le message news:

On Tue, 5 Oct 2004 23:41:47 +0200, "Alain Naigeon" :

De toutes façons, la défense nationale restera-t-elle nationale
longtemps, ou sera-t-elle européanisée ?


<HS>
C'est pas demain la veille


On a le temps : il y a peu, certains ont dû travailler sur du code
COBOL qui datait de la nuit des temps ; il est fort possible que du
code C++ écrit aujourd'hui doive être repris en 2038 quand la valeur
de retour de time() ne tiendra plus sur 31 bits...


Après mon horloge, le déluge ! ;-)

--

Français *==> "Musique renaissance" <==* English
midi - facsimiles - ligatures - mensuration
http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/
Alain Naigeon - - Strasbourg, France



Avatar
Alain Naigeon
"Fabien LE LEZ" a écrit dans le message news:

On Tue, 5 Oct 2004 23:46:39 +0200, "Alain Naigeon" :

"doivent" sonne un peu creux. S'ils le lisent c'est qu'ils y trouvent un
intérêt.


Tu n'as donc jamais été forcé de continuer un projet initié par
quelqu'un d'autre ?


Si, hélas, car même en comprenant la langue, j'ai détesté ça.
Au delà du vocabulaire, il y a la tournure d'esprit personnelle,
et même culturelle : crois-tu qu'un Allemand, qui postfixe tous
les verbes du matin au soir, va organiser son code comme
toi et moi ? ;-)

--

Français *==> "Musique renaissance" <==* English
midi - facsimiles - ligatures - mensuration
http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/
Alain Naigeon - - Strasbourg, France


Avatar
Gabriel Dos Reis
"Alain Naigeon" writes:

| Tu raisonnes comme si tu étais content qu'on lise ton programme.

Comme tout programmeur compétent :-)

-- Gaby
Avatar
Gabriel Dos Reis
"Alain Naigeon" writes:

| "Arnaud Meurgues" a écrit dans le message
| news: 41625838$0$8210$
| > Michel Michaud wrote:
| >
| > > Par ailleurs,
| > > penser que tout le code écrit doit pouvoir être lu par des personnes
| > > qui ne parlent que l'anglais est aussi un leurre...
| >
| > Ce n'est pas le propos. C'est plutôt que l'anglais est la langue
| > internationale de facto en ce moment
|
| The only problem with your point of view is that it will still
| strengthen the domination of English. OTH, if you write
| outstanding programs with French identifiers, even English
| speaking people will wish to read them :-)

wishful thinking.

-- Gaby
Avatar
Alain Naigeon
"Fabien LE LEZ" a écrit dans le message news:

On Tue, 5 Oct 2004 23:35:54 +0200, "Alain Naigeon" :

The only problem with your point of view is that it will still
strengthen the domination of English.


C'est totalement inéluctable. Il faut une langue qui permette à deux
personnes prises au hasard de communiquer entre elles. Donc, tu as
trois choix :
- soit tu acceptes la situation actuelle (et la situation future
qui se prépare) ;


Il faut juste se demander d'où elle vient, et c'est là que
mon argument d'excellence (des programmes) n'est pas
tout à fait hors de propos : ce n'est pas l'Anglais qui s'est
imposé, c'est l'Américain. Je veux dire que de nombreuses
avancées technologiques (dont en informatique) ont été
faites là-bas (le sempiternel contre-exemple d'Ada n'en
est pas un, puisqu'il a été commandé par l'US Army).
Et c'est donc la langue des inventions qui domine, et
c'est normal. Donc je reprends : soyons excellents au
point d'être incontournables, comme ils l'ont été, et
nous serons lus en Français ! C'est pas demain la veille,
ça non plus, mais comme disait Tartacover (maître d'échecs),
on n'a jamais gagné une partie en abandonnant :-)

Mouais... bien souvent, un programme génial est écrit par une équipe
plutôt que par une seule personne. Et plus une équipe est grande, plus
la probabilité que tous les membres soient francophones tend vers 0.


H'mm, t'es matheux, je crois, une proba qui tend vers zéro, c'est
pas louche ça ? :-)

--

Français *==> "Musique renaissance" <==* English
midi - facsimiles - ligatures - mensuration
http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/
Alain Naigeon - - Strasbourg, France


Avatar
Fabien LE LEZ
On Wed, 6 Oct 2004 02:32:55 +0200, "Alain Naigeon" :

H'mm, t'es matheux, je crois,


Oui.

une proba qui tend vers zéro, c'est
pas louche ça ? :-)


Non.
Tant que ça reste entre 0 et 1 (inclus), y'a pas de problème.
Une proba qui tend vers -1, par contre, ça serait sérieusement louche.


--
;-)

Avatar
Fabien LE LEZ
On Wed, 6 Oct 2004 02:32:55 +0200, "Alain Naigeon" :

Il faut juste se demander d'où elle vient


Si tu veux. Mais on ne peut pas changer le passé.
Parlons plutôt de l'avenir : penses-tu sérieusement que le français
peut s'imposer comme langue universelle, et supplanter totalement
l'anglais ?
Si c'est pour avoir plusieurs langues qui continuent leur guéguerre,
ça ne m'intéresse pas. Et je préfère largement que la langue
universelle soit l'anglais plutôt que l'allemand ou le chinois.
Et si le but est de ne pas s'adapter, il eût mieux valu garder le
latin.

ce n'est pas l'Anglais qui s'est imposé, c'est l'Américain.


L'Américain ou l'américain ?

Les deux ont tendance à s'imposer ~_~


--
;-)

Avatar
Fabien LE LEZ
On Mon, 4 Oct 2004 23:23:53 -0400, "Michel Michaud" :

On a déjà eu cette discussion souvent : il faut que le code et les
commentaires soient précis et exacts. Au maximum. S'il est permis
de croire qu'un programmeur doit connaître l'anglais de façon
fonctionnelle, on ne peut lui demander de maîtriser cette autre
langue au point de pouvoir s'exprimer aussi parfaitement avec elle.


Si un programmeur qui a programmé en français toute sa vie, se met
tout à coup à programmer en anglais (i.e. code+commentaires),
effectivement ses premiers programmes manqueront peut-être de clarté.
Mais on peut raisonnablement espérer qu'il s'améliorera avec le temps.
De même, si un programmeur francophone a toujours programmé en
anglais, et décide tout à coup de programmer en français, c'est pas
sûr que le résultat soit génial non plus (au début du moins).

Forcer l'anglais, c'est donc risquer de forcer un nivellement par le
bas à un endroit où ce n'est vraiment pas ce qu'on veut.


Ou forcer les gens à améliorer leur niveau d'anglais. Pour maîtriser
l'anglais écrit, il n'y a pas trente-six méthodes : il faut lire et
écrire beaucoup.

Par ailleurs,
penser que tout le code écrit doit pouvoir être lu par des personnes
qui ne parlent que l'anglais est aussi un leurre...


Effectivement, tout le code que j'écris ne devra pas forcément être lu
par un non-francophone. Mais comme je ne peux pas savoir à l'avance
quel code sera concerné, autant prendre les devants et tout écrire en
anglais, non ?

De même, en voiture, je ne dépasse jamais dans un virage, même si je
ne suis pas sûr qu'une voiture vient en face.


--
;-)