Salut,
Si j'ai bien compris le principe de l'ADN (ce qui reste encore � d�montrer, vu que je suis informaticien, et non biologiste
), le nuc�lotide est syst�matiquement compos�s de quatre �l�ments repr�sent�s par les lettre C G A et T (et autre combinaisons possibles), et tu as une s�rie de nuc�lotides qui se suivent pour repr�senter une "s�quence ADN"(merci wikipedia
).
H� bien, le plus facile est sans doute de cr�er deux types de donn�e bien distincts : un type de donn�e permettant de repr�senter la notion de nucl�otide et un type de donn�e permettant de repr�senter... une s�quence d'ADN.
Ceci dit, je dis qu'il faut cr�er des types de donn�es, mais le seul but recherch� est de permettre au d�veloppeur de savoir s'il est occup� � travailler sur... ce qui repr�sente un nucl�otide ou sur ce qui repr�sente une s�quence ADN! On n'est donc pas forc�ment oblig� d'aller tr�s loin dans la d�finition de ces types et, en l'occurrence, des alias de type pourraient tr�s bien faire l'affaire
(enfin, dans un premier temps du moins).
Ainsi, la notion de nucl�otide, vu quelle doit �tre repr�sent�e par quatre lettres, pourrait tr�s bien prendre la forme de
using Nucleotide = std::array<char, 4>;
(Attention: C++11 obligatoire
)
Quant � la notion de "s�quence d'ADN", elle pourrait tout aussi bien prendre la forme de
using AdnSequence = std::vector<Nucleotide>;
.
La seule chose, c'est que la notion de tableau (comme celle repr�sent�e par la classe std::vector) est particuli�rement rapide lorsqu'il s'agit d'acc�der aux diff�rents �l�ments qu'elle contient, mais... d'une lenteur crasse lorsqu'il s'agit d'augmenter le nombre d'�l�ments qu'elle est capable de contenir. Si bien que l'id�al est g�n�ralement de faire en sorte que std::vector demande directement "assez de m�moire" que pour �tre en mesure de contenir l'ensemble des �l�ments que nous nous appr�tons � lui donner.
PS : je confirme ce que bousk dit : un char pour repr�senter les valeurs de C, G, T et A est largement suffisant, et prendra surement moins de place en m�moire que d'utiliser n'importe quel type "entier" 
En outre, il serait �ventuellement possible de faire encore mieux du point de vue de l'utilisation de la m�moire en essayant de faire en sorte d'utiliser syst�matiquement deux bits pour chaque lettre. Mais, � moins d'avoir la preuve que l'utilisation d'un char pour repr�senter un des �l�ments du nucl�otide ne repr�sente d�j� une "utilisation trop importante de la m�moire", je crois qu'il serait particuli�rement masochiste d'essayer de faire autrement
Partager