Preguntas etiquetadas con stl

La Biblioteca de plantillas estándar, o STL, es una biblioteca C ++ de contenedores genéricos, iteradores, algoritmos y objetos de función. Cuando C ++ se estandarizó, grandes partes de la STL se adoptaron en la Biblioteca estándar, y estas partes en la Biblioteca estándar también se denominan a veces erróneamente colectivamente como "la STL".


4
Contenedor STL con un tipo específico como argumento genérico
¿Hay alguna manera de que pueda hacer una función que tome un contenedor con un tipo específico (digamos std::string) como parámetro void foo(const std::container<std::string> &cont) { for(std::string val: cont) { std::cout << val << std::endl; } } y llamarlo para cada tipo de contenedor stl como entrada? como arriba? std::set<std::string> …

4
¿Es válido usar std :: transform con std :: back_inserter?
Cppreference tiene este código de ejemplo para std::transform: std::vector<std::size_t> ordinals; std::transform(s.begin(), s.end(), std::back_inserter(ordinals), [](unsigned char c) -> std::size_t { return c; }); Pero también dice: std::transformno garantiza la aplicación en orden de unary_opo binary_op. Para aplicar una función a una secuencia en orden o para aplicar una función que modifique …



1
¿Está `string.assign (string.data (), 5)` bien definido o UB?
Un compañero de trabajo quería escribir esto: std::string_view strip_whitespace(std::string_view sv); std::string line = "hello "; line = strip_whitespace(line); Dije que regresar string_viewme inquietaba a priori y, además, el alias aquí me parecía UB. Puedo decir con certeza que line = strip_whitespace(line)en este caso es equivalente a line = std::string_view(line.data(), 5). …

3
¿Puedo usar std :: transform en su lugar con una política de ejecución paralela?
Si no me equivoco, puedo hacer que std::transformfuncione en su lugar usando el mismo rango que un iterador de entrada y salida. Supongamos que tengo algún std::vectorobjeto vec, entonces escribiría std::transform(vec.cbegin(),vec.cend(),vec.begin(),unary_op) utilizando una operación unaria adecuada unary_op. Usando el estándar C ++ 17, me gustaría ejecutar la transformación en paralelo …

1
Pérdida de memoria durante un_orped_map :: inserte la excepción KeyEqual con GCC - ¿rompiendo la fuerte garantía de seguridad de excepción?
Estoy usando GCC 7.3.1, pero también probé en coliru, que creo que es la versión 9.2.0. Construir con lo siguiente: g++ -fsanitize=address -fno-omit-frame-pointer rai.cpp Aquí está rai.cpp: #include <iostream> #include <unordered_map> int main() { try { struct MyComp { bool operator()(const std::string&, const std::string&) const { throw std::runtime_error("Nonono"); } }; …


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.