Bitişik bellekte, farklı ancak bilinen ve makul boyutta küçük boyutlarda, her biri std::vectors
'u saklamanın bir yolunu bulmak istiyorum. Kendi sınıfımı yazabileceğimin farkına vardım, çok geniş bir diziyle ve dizinin her bir alt bölümünün başlangıcı için ayrı bir varlık gibi ele alınan daha büyük bir dizinin başlangıcına işaret edebilirim, fakat bunun daha akıllı bir yolu olması gerektiği anlaşılıyor. .Birkaç küçük std :: vektörü için bitişik bellek ayırma?
Örneğin, bitişik std::vectors
oluşturmak için allocators
kullanmanın bir yolu var mı? Tekerleği yeniden icat etmemek istiyorum, çünkü bu normalde normalde bu bellek lokalitesini istiyorum std::vectors
Kodlamaya nasıl başlayacağımı bilmiyorum. Hafızada bir işaretçi alan, oradaki bir vektörü tahsis eden ve sonra bir şekilde bu vektörün sonunun adresini geri alan bir ayırıcı yaratmam gerekiyor, böylece bir sonraki std::vector
'un ayırıcısı bunu alıp tekrar yapabilir. allocator
bir değeri nasıl döndürür?
Evet, bunu yapmak için ayırıcıları kullanabilirsiniz. Ne denedin? Çalıştığını göster :) – Andrew
@Andrew Soruma bir şey ekledim ama nereden başlayacağımı bilmiyorum. Allocators ile çalışmadım ve şimdiye kadar yaptığım her şey STL referansında Josuttis'in bölümlerini okudu. – sunny
Herhangi bir ihtimalle, derleme zamanında bilinen boyutlarda mıdır? – dasblinkenlight