Tengo un vector de punteros que no son propiedad del contenedor. ¿Cómo uso los algoritmos en los objetivos de los punteros? Traté de usar boost ptr_vector, pero intenta eliminar los punteros cuando sale del alcance.cómo se usan los algoritmos STL con un vector de punteros
Aquí hay un código que tiene que trabajar:
vector<int*> myValues;
// ... myValues is populated
bool consistent = count(myValues.begin(), myValues.end(), myValues.front()) == myValues.size();
auto v = consistent ? myValues.front() : accumulate(myValues.begin(), myValues.end(), 0)/myValues.size();
fill(myValues.begin(), myValues.end(), v);
// etc.
Soy consciente de que para los bucles que funcionaría, pero esto sucede en un montón de lugares, por lo que algún tipo de adaptador unario? No pude encontrar uno. ¡Gracias por adelantado!
Si utiliza las características del futuro estándar de C++ pendiente de aprobación en sus preguntas, limitará las respuestas que obtenga. No está muy claro si su pregunta es acerca de la biblioteca estándar actual, el uso de Boost o las nuevas características de C++ 0x. –
Parece que se supone que v es el valor promedio de los enteros, pero luego la línea de copia intenta copiar a v, por lo que v tendría que ser un puntero o un iterador. –
oh sí, esa última línea era incorrecta ... Tenía la intención de escribir "llenar" en lugar de "copiar". –