je ne comprends pas pourquoi le programme suivant me sort une erreur:
#include <stdio.h> #include <vector>
typedef double MatriX[4][4];
int main(void) { std::vector<MatriX> test;
MatriX matrix;
test.push_back(matrix);
return 0; }
VC++ .NET: error C2440: 'initializing' : cannot convert from 'const double [4][4]' to 'MatriX '
Pourquoi il me sors un const double [4][4]?
On ne peut pas utiliser des tableaux comme élément de vector parce que les tableaux sont des types sans opérateur de copie.
-- Horst
-- Lâche pas la patate!
Korchkidu
Horst Kraemer wrote:
On ne peut pas utiliser des tableaux comme élément de vector parce que les tableaux sont des types sans opérateur de copie.
Je vois. Mais imaginons que ce typedef fait parti d'une lib en C qui est assez grande. Comment je peux faire si je veux faire ce genre de truc? Suis-je oblige de declarer une classe qui englobe mais structure de donnees de base?
K.
Horst Kraemer wrote:
On ne peut pas utiliser des tableaux comme élément de vector parce que
les tableaux sont des types sans opérateur de copie.
Je vois. Mais imaginons que ce typedef fait parti d'une lib en C qui est
assez grande. Comment je peux faire si je veux faire ce genre de truc?
Suis-je oblige de declarer une classe qui englobe mais structure de
donnees de base?
On ne peut pas utiliser des tableaux comme élément de vector parce que les tableaux sont des types sans opérateur de copie.
Je vois. Mais imaginons que ce typedef fait parti d'une lib en C qui est assez grande. Comment je peux faire si je veux faire ce genre de truc? Suis-je oblige de declarer une classe qui englobe mais structure de donnees de base?
K.
Falk Tannhäuser
Korchkidu wrote:
Horst Kraemer wrote:
On ne peut pas utiliser des tableaux comme élément de vector parce que les tableaux sont des types sans opérateur de copie.
Je vois. Mais imaginons que ce typedef fait parti d'une lib en C qui es t assez grande. Comment je peux faire si je veux faire ce genre de truc? Suis-je oblige de declarer une classe qui englobe mais structure de donnees de base?
struct MatriX { double a[4][4]; };
devrait faire l'affaire. Une classe avec l'opérateur [] surchargé rend cependant l'utilisation plus aisée :
On ne peut pas utiliser des tableaux comme élément de vector parce que
les tableaux sont des types sans opérateur de copie.
Je vois. Mais imaginons que ce typedef fait parti d'une lib en C qui es t
assez grande. Comment je peux faire si je veux faire ce genre de truc?
Suis-je oblige de declarer une classe qui englobe mais structure de
donnees de base?
struct MatriX
{
double a[4][4];
};
devrait faire l'affaire. Une classe avec l'opérateur [] surchargé
rend cependant l'utilisation plus aisée :
On ne peut pas utiliser des tableaux comme élément de vector parce que les tableaux sont des types sans opérateur de copie.
Je vois. Mais imaginons que ce typedef fait parti d'une lib en C qui es t assez grande. Comment je peux faire si je veux faire ce genre de truc? Suis-je oblige de declarer une classe qui englobe mais structure de donnees de base?
struct MatriX { double a[4][4]; };
devrait faire l'affaire. Une classe avec l'opérateur [] surchargé rend cependant l'utilisation plus aisée :
Je vois. Mais imaginons que ce typedef fait parti d'une lib en C qui est assez grande. Comment je peux faire si je veux faire ce genre de truc? Suis-je oblige de declarer une classe qui englobe mais structure de donnees de base?
K.
ou faire un vector de pointeur vers cette structure
Je vois. Mais imaginons que ce typedef fait parti d'une lib en C qui est
assez grande. Comment je peux faire si je veux faire ce genre de truc?
Suis-je oblige de declarer une classe qui englobe mais structure de
donnees de base?
K.
ou faire un vector de pointeur vers cette structure
Je vois. Mais imaginons que ce typedef fait parti d'une lib en C qui est assez grande. Comment je peux faire si je veux faire ce genre de truc? Suis-je oblige de declarer une classe qui englobe mais structure de donnees de base?
K.
ou faire un vector de pointeur vers cette structure
Je croyais interieurement a une methode miracle. Je suis bon pour faire des wrappers pour chaque type qui pose pb (tant qu'a faire, autant faire les operateurs qui vont bien aussi....).
Je croyais interieurement a une methode miracle. Je suis bon pour faire
des wrappers pour chaque type qui pose pb (tant qu'a faire, autant faire
les operateurs qui vont bien aussi....).
Je croyais interieurement a une methode miracle. Je suis bon pour faire des wrappers pour chaque type qui pose pb (tant qu'a faire, autant faire les operateurs qui vont bien aussi....).
Je croyais interieurement a une methode miracle. Je suis bon pour faire des wrappers pour chaque type qui pose pb (tant qu'a faire, autant fair e les operateurs qui vont bien aussi....).
Si tu as beaucoup de matrices avec des types ou dimensions différent(e) s, pourquoi pas faire un template :
template<typename T, unsigned Rows, unsigned Columns = Rows> class MatriX { T data[Rows][Columns]; public: // Constructeur(s), si nécessaire ?
Je croyais interieurement a une methode miracle. Je suis bon pour faire
des wrappers pour chaque type qui pose pb (tant qu'a faire, autant fair e
les operateurs qui vont bien aussi....).
Si tu as beaucoup de matrices avec des types ou dimensions différent(e) s,
pourquoi pas faire un template :
template<typename T, unsigned Rows, unsigned Columns = Rows>
class MatriX
{
T data[Rows][Columns];
public:
// Constructeur(s), si nécessaire ?
Je croyais interieurement a une methode miracle. Je suis bon pour faire des wrappers pour chaque type qui pose pb (tant qu'a faire, autant fair e les operateurs qui vont bien aussi....).
Si tu as beaucoup de matrices avec des types ou dimensions différent(e) s, pourquoi pas faire un template :
template<typename T, unsigned Rows, unsigned Columns = Rows> class MatriX { T data[Rows][Columns]; public: // Constructeur(s), si nécessaire ?