Bonjour,
J'ai besoin de conseils sur la meilleure facon d'initialiser un tableau au
sein d'une structure if...
J'utilise différents tableaux avec des valeurs définies (dates d'echéanier,
valeur de tranches...) et je pensais les initialier ainsi (adEch contient
ici par exemple différentes dates d'échéance):
if (bMens)
double adEch[] = {15.01, 15.02, 15.03, 15.04, 15.05, 15.05};
else
double adEch[] = {15.03, 15.06};
cout << adEch[0] <<endl;
Seulement je ne peux accéder aux tableaux ensuite vu que adEch est déclaré
et initialisé au sein de l'expression conditionelle (error C2065: adEch non
déclaré). La solution serait éventuellement de déclarer un tableau adTmp[]
avant et de copier au sein des conditions ces tableaux mais vu que la taille
des tableaux initialisé n'est pas toujours la même ce n'est pas si simple...
Comment faite vous pour initialiser rapidement des tableaux dans ce cas ?
Auriez vous quelques idées...
Bonjour,
J'ai besoin de conseils sur la meilleure facon d'initialiser un tableau au
sein d'une structure if...
J'utilise différents tableaux avec des valeurs définies (dates d'echéanier,
valeur de tranches...) et je pensais les initialier ainsi (adEch contient
ici par exemple différentes dates d'échéance):
if (bMens)
double adEch[] = {15.01, 15.02, 15.03, 15.04, 15.05, 15.05};
else
double adEch[] = {15.03, 15.06};
cout << adEch[0] <<endl;
Seulement je ne peux accéder aux tableaux ensuite vu que adEch est déclaré
et initialisé au sein de l'expression conditionelle (error C2065: adEch non
déclaré). La solution serait éventuellement de déclarer un tableau adTmp[]
avant et de copier au sein des conditions ces tableaux mais vu que la taille
des tableaux initialisé n'est pas toujours la même ce n'est pas si simple...
Comment faite vous pour initialiser rapidement des tableaux dans ce cas ?
Auriez vous quelques idées...
Bonjour,
J'ai besoin de conseils sur la meilleure facon d'initialiser un tableau au
sein d'une structure if...
J'utilise différents tableaux avec des valeurs définies (dates d'echéanier,
valeur de tranches...) et je pensais les initialier ainsi (adEch contient
ici par exemple différentes dates d'échéance):
if (bMens)
double adEch[] = {15.01, 15.02, 15.03, 15.04, 15.05, 15.05};
else
double adEch[] = {15.03, 15.06};
cout << adEch[0] <<endl;
Seulement je ne peux accéder aux tableaux ensuite vu que adEch est déclaré
et initialisé au sein de l'expression conditionelle (error C2065: adEch non
déclaré). La solution serait éventuellement de déclarer un tableau adTmp[]
avant et de copier au sein des conditions ces tableaux mais vu que la taille
des tableaux initialisé n'est pas toujours la même ce n'est pas si simple...
Comment faite vous pour initialiser rapidement des tableaux dans ce cas ?
Auriez vous quelques idées...
Bonjour,
J'ai besoin de conseils sur la meilleure facon d'initialiser un tableau
au sein d'une structure if...
J'utilise différents tableaux avec des valeurs définies (dates
d'echéanier, valeur de tranches...) et je pensais les initialier ainsi
(adEch contient ici par exemple différentes dates d'échéance):
if (bMens)
double adEch[] = {15.01, 15.02, 15.03, 15.04, 15.05, 15.05};
else
double adEch[] = {15.03, 15.06};
cout << adEch[0] <<endl;
Seulement je ne peux accéder aux tableaux ensuite vu que adEch est
déclaré et initialisé au sein de l'expression conditionelle (error C2065:
adEch non déclaré). La solution serait éventuellement de déclarer un
tableau adTmp[] avant et de copier au sein des conditions ces tableaux
mais vu que la taille des tableaux initialisé n'est pas toujours la même
ce n'est pas si simple...
Comment faite vous pour initialiser rapidement des tableaux dans ce cas ?
Auriez vous quelques idées...
Pourquoi ne pas utiliser un std::vector< double > ?
Bonjour,
J'ai besoin de conseils sur la meilleure facon d'initialiser un tableau
au sein d'une structure if...
J'utilise différents tableaux avec des valeurs définies (dates
d'echéanier, valeur de tranches...) et je pensais les initialier ainsi
(adEch contient ici par exemple différentes dates d'échéance):
if (bMens)
double adEch[] = {15.01, 15.02, 15.03, 15.04, 15.05, 15.05};
else
double adEch[] = {15.03, 15.06};
cout << adEch[0] <<endl;
Seulement je ne peux accéder aux tableaux ensuite vu que adEch est
déclaré et initialisé au sein de l'expression conditionelle (error C2065:
adEch non déclaré). La solution serait éventuellement de déclarer un
tableau adTmp[] avant et de copier au sein des conditions ces tableaux
mais vu que la taille des tableaux initialisé n'est pas toujours la même
ce n'est pas si simple...
Comment faite vous pour initialiser rapidement des tableaux dans ce cas ?
Auriez vous quelques idées...
Pourquoi ne pas utiliser un std::vector< double > ?
Bonjour,
J'ai besoin de conseils sur la meilleure facon d'initialiser un tableau
au sein d'une structure if...
J'utilise différents tableaux avec des valeurs définies (dates
d'echéanier, valeur de tranches...) et je pensais les initialier ainsi
(adEch contient ici par exemple différentes dates d'échéance):
if (bMens)
double adEch[] = {15.01, 15.02, 15.03, 15.04, 15.05, 15.05};
else
double adEch[] = {15.03, 15.06};
cout << adEch[0] <<endl;
Seulement je ne peux accéder aux tableaux ensuite vu que adEch est
déclaré et initialisé au sein de l'expression conditionelle (error C2065:
adEch non déclaré). La solution serait éventuellement de déclarer un
tableau adTmp[] avant et de copier au sein des conditions ces tableaux
mais vu que la taille des tableaux initialisé n'est pas toujours la même
ce n'est pas si simple...
Comment faite vous pour initialiser rapidement des tableaux dans ce cas ?
Auriez vous quelques idées...
Pourquoi ne pas utiliser un std::vector< double > ?
En fait j'utilise un vector par la suite (vector<double> vEch(adEch, adEch+
sizeof(adEch)/sizeof(*adEch))). Mais je souhaitais utiliser le tableau au
départ pour initialiser facilement les valeurs de ce tableau. Sauf erreur il
n'est pas possible d'initialiser facilement les valeurs d'un vecteur comme
15.01, 15.02, 15.03, 15.04, 15.05, 15.05 . Et la j'ai un probleme parce que
ma déclaration + initialisation de tableau n'est pas connu en dehors de
l'expression If...
En fait j'utilise un vector par la suite (vector<double> vEch(adEch, adEch+
sizeof(adEch)/sizeof(*adEch))). Mais je souhaitais utiliser le tableau au
départ pour initialiser facilement les valeurs de ce tableau. Sauf erreur il
n'est pas possible d'initialiser facilement les valeurs d'un vecteur comme
15.01, 15.02, 15.03, 15.04, 15.05, 15.05 . Et la j'ai un probleme parce que
ma déclaration + initialisation de tableau n'est pas connu en dehors de
l'expression If...
En fait j'utilise un vector par la suite (vector<double> vEch(adEch, adEch+
sizeof(adEch)/sizeof(*adEch))). Mais je souhaitais utiliser le tableau au
départ pour initialiser facilement les valeurs de ce tableau. Sauf erreur il
n'est pas possible d'initialiser facilement les valeurs d'un vecteur comme
15.01, 15.02, 15.03, 15.04, 15.05, 15.05 . Et la j'ai un probleme parce que
ma déclaration + initialisation de tableau n'est pas connu en dehors de
l'expression If...
En fait j'utilise un vector par la suite (vector<double> vEch(adEch,
adEch+ sizeof(adEch)/sizeof(*adEch))). Mais je souhaitais utiliser le
tableau au départ pour initialiser facilement les valeurs de ce tableau.
Sauf erreur il n'est pas possible d'initialiser facilement les valeurs
d'un vecteur comme 15.01, 15.02, 15.03, 15.04, 15.05, 15.05 . Et la j'ai
un probleme parce que ma déclaration + initialisation de tableau n'est pas
connu en dehors de l'expression If...
Merci de développer si tu pensais a quelque chose de précis...
Xavier
"Michel Decima" a écrit dans le message de
news: eu0mon$6m4$Bonjour,
J'ai besoin de conseils sur la meilleure facon d'initialiser un tableau
au sein d'une structure if...
J'utilise différents tableaux avec des valeurs définies (dates
d'echéanier, valeur de tranches...) et je pensais les initialier ainsi
(adEch contient ici par exemple différentes dates d'échéance):
if (bMens)
double adEch[] = {15.01, 15.02, 15.03, 15.04, 15.05, 15.05};
else
double adEch[] = {15.03, 15.06};
cout << adEch[0] <<endl;
Seulement je ne peux accéder aux tableaux ensuite vu que adEch est
déclaré et initialisé au sein de l'expression conditionelle (error
C2065: adEch non déclaré). La solution serait éventuellement de déclarer
un tableau adTmp[] avant et de copier au sein des conditions ces
tableaux mais vu que la taille des tableaux initialisé n'est pas
toujours la même ce n'est pas si simple...
Comment faite vous pour initialiser rapidement des tableaux dans ce cas
? Auriez vous quelques idées...
Pourquoi ne pas utiliser un std::vector< double > ?
En fait j'utilise un vector par la suite (vector<double> vEch(adEch,
adEch+ sizeof(adEch)/sizeof(*adEch))). Mais je souhaitais utiliser le
tableau au départ pour initialiser facilement les valeurs de ce tableau.
Sauf erreur il n'est pas possible d'initialiser facilement les valeurs
d'un vecteur comme 15.01, 15.02, 15.03, 15.04, 15.05, 15.05 . Et la j'ai
un probleme parce que ma déclaration + initialisation de tableau n'est pas
connu en dehors de l'expression If...
Merci de développer si tu pensais a quelque chose de précis...
Xavier
"Michel Decima" <michel.decima@orange-ft.com> a écrit dans le message de
news: eu0mon$6m4$1@news.rd.francetelecom.fr...
Bonjour,
J'ai besoin de conseils sur la meilleure facon d'initialiser un tableau
au sein d'une structure if...
J'utilise différents tableaux avec des valeurs définies (dates
d'echéanier, valeur de tranches...) et je pensais les initialier ainsi
(adEch contient ici par exemple différentes dates d'échéance):
if (bMens)
double adEch[] = {15.01, 15.02, 15.03, 15.04, 15.05, 15.05};
else
double adEch[] = {15.03, 15.06};
cout << adEch[0] <<endl;
Seulement je ne peux accéder aux tableaux ensuite vu que adEch est
déclaré et initialisé au sein de l'expression conditionelle (error
C2065: adEch non déclaré). La solution serait éventuellement de déclarer
un tableau adTmp[] avant et de copier au sein des conditions ces
tableaux mais vu que la taille des tableaux initialisé n'est pas
toujours la même ce n'est pas si simple...
Comment faite vous pour initialiser rapidement des tableaux dans ce cas
? Auriez vous quelques idées...
Pourquoi ne pas utiliser un std::vector< double > ?
En fait j'utilise un vector par la suite (vector<double> vEch(adEch,
adEch+ sizeof(adEch)/sizeof(*adEch))). Mais je souhaitais utiliser le
tableau au départ pour initialiser facilement les valeurs de ce tableau.
Sauf erreur il n'est pas possible d'initialiser facilement les valeurs
d'un vecteur comme 15.01, 15.02, 15.03, 15.04, 15.05, 15.05 . Et la j'ai
un probleme parce que ma déclaration + initialisation de tableau n'est pas
connu en dehors de l'expression If...
Merci de développer si tu pensais a quelque chose de précis...
Xavier
"Michel Decima" a écrit dans le message de
news: eu0mon$6m4$Bonjour,
J'ai besoin de conseils sur la meilleure facon d'initialiser un tableau
au sein d'une structure if...
J'utilise différents tableaux avec des valeurs définies (dates
d'echéanier, valeur de tranches...) et je pensais les initialier ainsi
(adEch contient ici par exemple différentes dates d'échéance):
if (bMens)
double adEch[] = {15.01, 15.02, 15.03, 15.04, 15.05, 15.05};
else
double adEch[] = {15.03, 15.06};
cout << adEch[0] <<endl;
Seulement je ne peux accéder aux tableaux ensuite vu que adEch est
déclaré et initialisé au sein de l'expression conditionelle (error
C2065: adEch non déclaré). La solution serait éventuellement de déclarer
un tableau adTmp[] avant et de copier au sein des conditions ces
tableaux mais vu que la taille des tableaux initialisé n'est pas
toujours la même ce n'est pas si simple...
Comment faite vous pour initialiser rapidement des tableaux dans ce cas
? Auriez vous quelques idées...
Pourquoi ne pas utiliser un std::vector< double > ?
Xavier wrote:En fait j'utilise un vector par la suite (vector<double> vEch(adEch,
adEch+ sizeof(adEch)/sizeof(*adEch))). Mais je souhaitais utiliser le
tableau au départ pour initialiser facilement les valeurs de ce tableau.
Sauf erreur il n'est pas possible d'initialiser facilement les valeurs
d'un vecteur comme 15.01, 15.02, 15.03, 15.04, 15.05, 15.05 . Et la j'ai
un probleme parce que ma déclaration + initialisation de tableau n'est
pas connu en dehors de l'expression If...
Tu peux faire soit :
vector<double> vEch;
if (bMens) {
double adEch[] = {15.01, 15.02, 15.03, 15.04, 15.05, 15.05};
vEch.assign(adEch, adEch+sizeof(adEch)/sizeof(*adEch));
}
else {
double adEch[] = {15.03, 15.06};
vEch.assign(adEch, adEch+sizeof(adEch)/sizeof(*adEch));
}
soit :
vector<double> vEch;
if (bMens) {
vEch.push_back(15.01);
vEch.push_back(15.02);
...
}
else {
vEch.push_back(15.03);
vEch.push_back(15.06);
}
--
Sylvain Togni
Xavier wrote:
En fait j'utilise un vector par la suite (vector<double> vEch(adEch,
adEch+ sizeof(adEch)/sizeof(*adEch))). Mais je souhaitais utiliser le
tableau au départ pour initialiser facilement les valeurs de ce tableau.
Sauf erreur il n'est pas possible d'initialiser facilement les valeurs
d'un vecteur comme 15.01, 15.02, 15.03, 15.04, 15.05, 15.05 . Et la j'ai
un probleme parce que ma déclaration + initialisation de tableau n'est
pas connu en dehors de l'expression If...
Tu peux faire soit :
vector<double> vEch;
if (bMens) {
double adEch[] = {15.01, 15.02, 15.03, 15.04, 15.05, 15.05};
vEch.assign(adEch, adEch+sizeof(adEch)/sizeof(*adEch));
}
else {
double adEch[] = {15.03, 15.06};
vEch.assign(adEch, adEch+sizeof(adEch)/sizeof(*adEch));
}
soit :
vector<double> vEch;
if (bMens) {
vEch.push_back(15.01);
vEch.push_back(15.02);
...
}
else {
vEch.push_back(15.03);
vEch.push_back(15.06);
}
--
Sylvain Togni
Xavier wrote:En fait j'utilise un vector par la suite (vector<double> vEch(adEch,
adEch+ sizeof(adEch)/sizeof(*adEch))). Mais je souhaitais utiliser le
tableau au départ pour initialiser facilement les valeurs de ce tableau.
Sauf erreur il n'est pas possible d'initialiser facilement les valeurs
d'un vecteur comme 15.01, 15.02, 15.03, 15.04, 15.05, 15.05 . Et la j'ai
un probleme parce que ma déclaration + initialisation de tableau n'est
pas connu en dehors de l'expression If...
Tu peux faire soit :
vector<double> vEch;
if (bMens) {
double adEch[] = {15.01, 15.02, 15.03, 15.04, 15.05, 15.05};
vEch.assign(adEch, adEch+sizeof(adEch)/sizeof(*adEch));
}
else {
double adEch[] = {15.03, 15.06};
vEch.assign(adEch, adEch+sizeof(adEch)/sizeof(*adEch));
}
soit :
vector<double> vEch;
if (bMens) {
vEch.push_back(15.01);
vEch.push_back(15.02);
...
}
else {
vEch.push_back(15.03);
vEch.push_back(15.06);
}
--
Sylvain Togni
Finalement je vais partir sur un truc comme cela en passant par la
construction suivante..
std::vector<double> vEch;
if (bMens){
double adEch[] = {15.01, 15.02, 15.03, 15.04, 15.05, 15.05};
vector<double> vEchTmp(adEch, adEch + sizeof(adEch)/sizeof(*adEch));
vEch = vEchTmp;
}
else {
double adEch[] = {15.01, 15.05};
vector<double> vEchTmp(adEch, adEch + sizeof(adEch)/sizeof(*adEch));
vEch = vEchTmp;
}
Mais je trouve cela plutot lourd.
Reste une question : Pourquoi si je déclare une variable au sein d'un if
else, celle ci n'est pas accessible apres (c'est possible en VB mais pas en
C++; ou est ce une question de reglage du compilateur?)
Parceque le C++ est compilé, alors que le if n'est évalué que lors de
Et un regret: Dommage que la STL ne propose par un constructeur pour
initialiser un vecteur de la sorte:
std::vector<double> vEch (15.01, 15.02, 15.03, 15.04, 15.05, 15.05);!!!
Xavier
Finalement je vais partir sur un truc comme cela en passant par la
construction suivante..
std::vector<double> vEch;
if (bMens){
double adEch[] = {15.01, 15.02, 15.03, 15.04, 15.05, 15.05};
vector<double> vEchTmp(adEch, adEch + sizeof(adEch)/sizeof(*adEch));
vEch = vEchTmp;
}
else {
double adEch[] = {15.01, 15.05};
vector<double> vEchTmp(adEch, adEch + sizeof(adEch)/sizeof(*adEch));
vEch = vEchTmp;
}
Mais je trouve cela plutot lourd.
Reste une question : Pourquoi si je déclare une variable au sein d'un if
else, celle ci n'est pas accessible apres (c'est possible en VB mais pas en
C++; ou est ce une question de reglage du compilateur?)
Parceque le C++ est compilé, alors que le if n'est évalué que lors de
Et un regret: Dommage que la STL ne propose par un constructeur pour
initialiser un vecteur de la sorte:
std::vector<double> vEch (15.01, 15.02, 15.03, 15.04, 15.05, 15.05);!!!
Xavier
Finalement je vais partir sur un truc comme cela en passant par la
construction suivante..
std::vector<double> vEch;
if (bMens){
double adEch[] = {15.01, 15.02, 15.03, 15.04, 15.05, 15.05};
vector<double> vEchTmp(adEch, adEch + sizeof(adEch)/sizeof(*adEch));
vEch = vEchTmp;
}
else {
double adEch[] = {15.01, 15.05};
vector<double> vEchTmp(adEch, adEch + sizeof(adEch)/sizeof(*adEch));
vEch = vEchTmp;
}
Mais je trouve cela plutot lourd.
Reste une question : Pourquoi si je déclare une variable au sein d'un if
else, celle ci n'est pas accessible apres (c'est possible en VB mais pas en
C++; ou est ce une question de reglage du compilateur?)
Parceque le C++ est compilé, alors que le if n'est évalué que lors de
Et un regret: Dommage que la STL ne propose par un constructeur pour
initialiser un vecteur de la sorte:
std::vector<double> vEch (15.01, 15.02, 15.03, 15.04, 15.05, 15.05);!!!
Xavier
Finalement je vais partir sur un truc comme cela en passant par la
construction suivante..
std::vector<double> vEch;
if (bMens){
double adEch[] = {15.01, 15.02, 15.03, 15.04, 15.05, 15.05};
vector<double> vEchTmp(adEch, adEch + sizeof(adEch)/sizeof(*adEch));
vEch = vEchTmp;
}
else {
double adEch[] = {15.01, 15.05};
vector<double> vEchTmp(adEch, adEch + sizeof(adEch)/sizeof(*adEch));
vEch = vEchTmp;
}
Mais je trouve cela plutot lourd.
Reste une question : Pourquoi si je déclare une variable au sein d'un if
else, celle ci n'est pas accessible apres (c'est possible en VB mais pas en
C++; ou est ce une question de reglage du compilateur?)
Et un regret: Dommage que la STL ne propose par un constructeur pour
initialiser un vecteur de la sorte:
std::vector<double> vEch (15.01, 15.02, 15.03, 15.04, 15.05, 15.05);!!!
Xavier
Finalement je vais partir sur un truc comme cela en passant par la
construction suivante..
std::vector<double> vEch;
if (bMens){
double adEch[] = {15.01, 15.02, 15.03, 15.04, 15.05, 15.05};
vector<double> vEchTmp(adEch, adEch + sizeof(adEch)/sizeof(*adEch));
vEch = vEchTmp;
}
else {
double adEch[] = {15.01, 15.05};
vector<double> vEchTmp(adEch, adEch + sizeof(adEch)/sizeof(*adEch));
vEch = vEchTmp;
}
Mais je trouve cela plutot lourd.
Reste une question : Pourquoi si je déclare une variable au sein d'un if
else, celle ci n'est pas accessible apres (c'est possible en VB mais pas en
C++; ou est ce une question de reglage du compilateur?)
Et un regret: Dommage que la STL ne propose par un constructeur pour
initialiser un vecteur de la sorte:
std::vector<double> vEch (15.01, 15.02, 15.03, 15.04, 15.05, 15.05);!!!
Xavier
Finalement je vais partir sur un truc comme cela en passant par la
construction suivante..
std::vector<double> vEch;
if (bMens){
double adEch[] = {15.01, 15.02, 15.03, 15.04, 15.05, 15.05};
vector<double> vEchTmp(adEch, adEch + sizeof(adEch)/sizeof(*adEch));
vEch = vEchTmp;
}
else {
double adEch[] = {15.01, 15.05};
vector<double> vEchTmp(adEch, adEch + sizeof(adEch)/sizeof(*adEch));
vEch = vEchTmp;
}
Mais je trouve cela plutot lourd.
Reste une question : Pourquoi si je déclare une variable au sein d'un if
else, celle ci n'est pas accessible apres (c'est possible en VB mais pas en
C++; ou est ce une question de reglage du compilateur?)
Et un regret: Dommage que la STL ne propose par un constructeur pour
initialiser un vecteur de la sorte:
std::vector<double> vEch (15.01, 15.02, 15.03, 15.04, 15.05, 15.05);!!!
Xavier
Finalement je vais partir sur un truc comme cela en passant par la
construction suivante..
std::vector<double> vEch;
if (bMens){
double adEch[] = {15.01, 15.02, 15.03, 15.04, 15.05, 15.05};
vector<double> vEchTmp(adEch, adEch +
sizeof(adEch)/sizeof(*adEch));
vEch = vEchTmp;
}
else {
double adEch[] = {15.01, 15.05};
vector<double> vEchTmp(adEch, adEch +
sizeof(adEch)/sizeof(*adEch));
vEch = vEchTmp;
}
Mais je trouve cela plutot lourd.
Reste une question : Pourquoi si je déclare une variable au sein d'un if
else, celle ci n'est pas accessible apres (c'est possible en VB mais pas
en C++; ou est ce une question de reglage du compilateur?)
Parceque le C++ est compilé, alors que le if n'est évalué que lors de
l'éxectution.
Qu'est ce qui se passerait si je faisais:
if (truc)
{
int i =1;
}
utiliser(i);
Quand truc est faux, i n'existe pas et donc utiliser(i) ne devrait pas
compiler !!???
C'est vrai mais dans l'idée une des hypotheses testé est forcément vrai a un
tu est obligé de faire:
int i =0;
if (truc) i = 1;
Tu as un probleme supplementaire car tes 2 tableaux n'ont pas la même
empreinte en RAM.
Moi a ta place je ferais un truc du genre:
double adEch1[] = {15.01, 15.02, 15.03, 15.04, 15.05, 15.05};
double adEch2[] = {15.01, 15.05};
std::vector<double> vEch;
if (bMens){
vEch = vector<double>(adEch,adEch + sizeof(adEch)/sizeof(*adEch));}
else {
vEch = vector<double>(adEch1,adEch1+sizeof(adEch1)/sizeof(*adEch1));}
}
Avec des plus jolis non que 1 ou 2
J'aurais plutot tendance a déclarer les tableaux a l'interieur des test
Et un regret: Dommage que la STL ne propose par un constructeur pour
initialiser un vecteur de la sorte:
std::vector<double> vEch (15.01, 15.02, 15.03, 15.04, 15.05, 15.05);!!!
Xavier
Finalement je vais partir sur un truc comme cela en passant par la
construction suivante..
std::vector<double> vEch;
if (bMens){
double adEch[] = {15.01, 15.02, 15.03, 15.04, 15.05, 15.05};
vector<double> vEchTmp(adEch, adEch +
sizeof(adEch)/sizeof(*adEch));
vEch = vEchTmp;
}
else {
double adEch[] = {15.01, 15.05};
vector<double> vEchTmp(adEch, adEch +
sizeof(adEch)/sizeof(*adEch));
vEch = vEchTmp;
}
Mais je trouve cela plutot lourd.
Reste une question : Pourquoi si je déclare une variable au sein d'un if
else, celle ci n'est pas accessible apres (c'est possible en VB mais pas
en C++; ou est ce une question de reglage du compilateur?)
Parceque le C++ est compilé, alors que le if n'est évalué que lors de
l'éxectution.
Qu'est ce qui se passerait si je faisais:
if (truc)
{
int i =1;
}
utiliser(i);
Quand truc est faux, i n'existe pas et donc utiliser(i) ne devrait pas
compiler !!???
C'est vrai mais dans l'idée une des hypotheses testé est forcément vrai a un
tu est obligé de faire:
int i =0;
if (truc) i = 1;
Tu as un probleme supplementaire car tes 2 tableaux n'ont pas la même
empreinte en RAM.
Moi a ta place je ferais un truc du genre:
double adEch1[] = {15.01, 15.02, 15.03, 15.04, 15.05, 15.05};
double adEch2[] = {15.01, 15.05};
std::vector<double> vEch;
if (bMens){
vEch = vector<double>(adEch,adEch + sizeof(adEch)/sizeof(*adEch));}
else {
vEch = vector<double>(adEch1,adEch1+sizeof(adEch1)/sizeof(*adEch1));}
}
Avec des plus jolis non que 1 ou 2
J'aurais plutot tendance a déclarer les tableaux a l'interieur des test
Et un regret: Dommage que la STL ne propose par un constructeur pour
initialiser un vecteur de la sorte:
std::vector<double> vEch (15.01, 15.02, 15.03, 15.04, 15.05, 15.05);!!!
Xavier
Finalement je vais partir sur un truc comme cela en passant par la
construction suivante..
std::vector<double> vEch;
if (bMens){
double adEch[] = {15.01, 15.02, 15.03, 15.04, 15.05, 15.05};
vector<double> vEchTmp(adEch, adEch +
sizeof(adEch)/sizeof(*adEch));
vEch = vEchTmp;
}
else {
double adEch[] = {15.01, 15.05};
vector<double> vEchTmp(adEch, adEch +
sizeof(adEch)/sizeof(*adEch));
vEch = vEchTmp;
}
Mais je trouve cela plutot lourd.
Reste une question : Pourquoi si je déclare une variable au sein d'un if
else, celle ci n'est pas accessible apres (c'est possible en VB mais pas
en C++; ou est ce une question de reglage du compilateur?)
Parceque le C++ est compilé, alors que le if n'est évalué que lors de
l'éxectution.
Qu'est ce qui se passerait si je faisais:
if (truc)
{
int i =1;
}
utiliser(i);
Quand truc est faux, i n'existe pas et donc utiliser(i) ne devrait pas
compiler !!???
C'est vrai mais dans l'idée une des hypotheses testé est forcément vrai a un
tu est obligé de faire:
int i =0;
if (truc) i = 1;
Tu as un probleme supplementaire car tes 2 tableaux n'ont pas la même
empreinte en RAM.
Moi a ta place je ferais un truc du genre:
double adEch1[] = {15.01, 15.02, 15.03, 15.04, 15.05, 15.05};
double adEch2[] = {15.01, 15.05};
std::vector<double> vEch;
if (bMens){
vEch = vector<double>(adEch,adEch + sizeof(adEch)/sizeof(*adEch));}
else {
vEch = vector<double>(adEch1,adEch1+sizeof(adEch1)/sizeof(*adEch1));}
}
Avec des plus jolis non que 1 ou 2
J'aurais plutot tendance a déclarer les tableaux a l'interieur des test
Et un regret: Dommage que la STL ne propose par un constructeur pour
initialiser un vecteur de la sorte:
std::vector<double> vEch (15.01, 15.02, 15.03, 15.04, 15.05, 15.05);!!!
Xavier
J'utilise différents tableaux avec des valeurs définies (dates d'echéanier,
valeur de tranches...) et je pensais les initialier ainsi (adEch contient
ici par exemple différentes dates d'échéance):
if (bMens)
double adEch[] = {15.01, 15.02, 15.03, 15.04, 15.05, 15.05};
else
double adEch[] = {15.03, 15.06};
cout << adEch[0] <<endl;
Seulement je ne peux accéder aux tableaux ensuite vu que adEch est déclaré
et initialisé au sein de l'expression conditionelle [...]
J'utilise différents tableaux avec des valeurs définies (dates d'echéanier,
valeur de tranches...) et je pensais les initialier ainsi (adEch contient
ici par exemple différentes dates d'échéance):
if (bMens)
double adEch[] = {15.01, 15.02, 15.03, 15.04, 15.05, 15.05};
else
double adEch[] = {15.03, 15.06};
cout << adEch[0] <<endl;
Seulement je ne peux accéder aux tableaux ensuite vu que adEch est déclaré
et initialisé au sein de l'expression conditionelle [...]
J'utilise différents tableaux avec des valeurs définies (dates d'echéanier,
valeur de tranches...) et je pensais les initialier ainsi (adEch contient
ici par exemple différentes dates d'échéance):
if (bMens)
double adEch[] = {15.01, 15.02, 15.03, 15.04, 15.05, 15.05};
else
double adEch[] = {15.03, 15.06};
cout << adEch[0] <<endl;
Seulement je ne peux accéder aux tableaux ensuite vu que adEch est déclaré
et initialisé au sein de l'expression conditionelle [...]
Xavier wrote:En fait j'utilise un vector par la suite (vector<double> vEch(adEch, ad Ech+
sizeof(adEch)/sizeof(*adEch))). Mais je souhaitais utiliser le tableau au
départ pour initialiser facilement les valeurs de ce tableau. Sauf er reur il
n'est pas possible d'initialiser facilement les valeurs d'un vecteur co mme
15.01, 15.02, 15.03, 15.04, 15.05, 15.05 . Et la j'ai un probleme parce que
ma déclaration + initialisation de tableau n'est pas connu en dehors de
l'expression If...
Tu peux faire soit :
vector<double> vEch;
if (bMens) {
double adEch[] = {15.01, 15.02, 15.03, 15.04, 15.05, 15.05};
vEch.assign(adEch, adEch+sizeof(adEch)/sizeof(*adEch));
}
else {
double adEch[] = {15.03, 15.06};
vEch.assign(adEch, adEch+sizeof(adEch)/sizeof(*adEch));
}
Xavier wrote:
En fait j'utilise un vector par la suite (vector<double> vEch(adEch, ad Ech+
sizeof(adEch)/sizeof(*adEch))). Mais je souhaitais utiliser le tableau au
départ pour initialiser facilement les valeurs de ce tableau. Sauf er reur il
n'est pas possible d'initialiser facilement les valeurs d'un vecteur co mme
15.01, 15.02, 15.03, 15.04, 15.05, 15.05 . Et la j'ai un probleme parce que
ma déclaration + initialisation de tableau n'est pas connu en dehors de
l'expression If...
Tu peux faire soit :
vector<double> vEch;
if (bMens) {
double adEch[] = {15.01, 15.02, 15.03, 15.04, 15.05, 15.05};
vEch.assign(adEch, adEch+sizeof(adEch)/sizeof(*adEch));
}
else {
double adEch[] = {15.03, 15.06};
vEch.assign(adEch, adEch+sizeof(adEch)/sizeof(*adEch));
}
Xavier wrote:En fait j'utilise un vector par la suite (vector<double> vEch(adEch, ad Ech+
sizeof(adEch)/sizeof(*adEch))). Mais je souhaitais utiliser le tableau au
départ pour initialiser facilement les valeurs de ce tableau. Sauf er reur il
n'est pas possible d'initialiser facilement les valeurs d'un vecteur co mme
15.01, 15.02, 15.03, 15.04, 15.05, 15.05 . Et la j'ai un probleme parce que
ma déclaration + initialisation de tableau n'est pas connu en dehors de
l'expression If...
Tu peux faire soit :
vector<double> vEch;
if (bMens) {
double adEch[] = {15.01, 15.02, 15.03, 15.04, 15.05, 15.05};
vEch.assign(adEch, adEch+sizeof(adEch)/sizeof(*adEch));
}
else {
double adEch[] = {15.03, 15.06};
vEch.assign(adEch, adEch+sizeof(adEch)/sizeof(*adEch));
}