En ese caso, el único valor que puede configurarlo para que se false
con:
bool* a = new bool[100000]();
Dicho esto, no estoy seguro de por qué se podría pensar que no se puede utilizar un bucle. Están ahí por una razón. Solo debe usar la función lista para usar fill
o fill_n
(según el gusto).
Nota usando new
"cruda" como esa es una terrible práctica de programación. Use un std::vector<bool>
*:
std::vector<bool> v;
v.resize(100000);
std::fill(v.begin(), v.end(), true); // or false
O:
std::vector<bool> v;
v.reserve(100000);
std::fill_n(std::back_inserter(v), 100000, true); // or false
* Por supuesto, std::vector<bool>
sucede a romper la interfaz contenedor adecuado para que en realidad no almacenar bool
's. Si es un problema, use un std::vector<char>
.
que estaba usando un vector, pero era demasiado lento. Así que estoy buscando una solución más rápida. Pero no usé el relleno, así que creo que esto puede ser más rápido. –
@BSeven: Dudo seriamente que su reclamo sea cierto y que usted está en una posición en la que de todos modos le importaría. Use un 'std :: vector', maneja la administración por usted para evitar fugas fáciles. ¿Perfilaron su aplicación de lanzamiento-compilación completamente completa y encontraron que los resultados sugeridos con un 'std :: vector' eran la parte más lenta de su aplicación? (No.) – GManNickG
@BSeven: ¿en qué momento el vector era tan lento? En las compilaciones de lanzamiento, debe ser tan rápido como una matriz en bruto si se usa correctamente. – Philipp