En C# je pouvais faire quelque chose comme çaVecteurs multidimensionnels dans la rouille, segfaulting?
class Map {
public Tile[, ,] Location = new Tile[6, 256, 256];
}
et accéder à plus tard tout élément de tuile avec quelque chose comme Location[2, 40, 20]
Je suis en train de faire le même type de structure dans la rouille, mais je trouve la syntaxe un peu bizarre. Je suis venu avec, mais il crashait avec de grandes tailles de vecteur (couru hors de la pile?):
use tile::Tile // Simple struct with a few Point properties
pub struct Map {
location: [[[Tile, ..256], ..256], ..6],
}
pub impl Map {
fn new() -> Map {
Map {
// assuming empty_tile is a Tile I've just created
location: [[[empty_tile, ..256], ..256], ..6]
}
}
}
Vais-je sur ce mal? Il a couru très lentement et de grandes tailles segfaulted. Peut-être y a-t-il une meilleure façon de stocker un espace en trois dimensions de carreaux (couche, largeur, hauteur)?
edit: c'est avant même essayer et faire les carreaux mutables
Avez-vous essayé un petit MD-vector, pour voir si le problème est qu'il est trop grand? –
Êtes-vous segfaulting dans rustc, ou lorsque vous essayez d'exécuter l'exécutable produit? –
Corey: Lorsque j'essaie d'exécuter l'exécutable. –