Preguntas etiquetadas con c++

C ++ es un lenguaje de programación de propósito general. Originalmente fue diseñado como una extensión de C y tiene una sintaxis similar, pero ahora es un lenguaje completamente diferente. Use esta etiqueta para preguntas sobre el código (que se compilará) con un compilador de C ++. Utilice una etiqueta específica de la versión para preguntas relacionadas con una revisión estándar específica [C ++ 11], [C ++ 14], [C ++ 17] o [C ++ 20], etc.

6
¿Por qué vector <bool> no es un contenedor STL?
El artículo 18 del libro de Scott Meyers Effective STL: 50 Specific Ways to Mejorar el uso de la biblioteca de plantillas estándar dice que se debe evitar, vector &lt;bool&gt;ya que no es un contenedor STL y en realidad no contiene bools. El siguiente código: vector &lt;bool&gt; v; bool *pb …


16
Maneras limpias de escribir múltiples bucles 'for'
Para una matriz con múltiples dimensiones, generalmente necesitamos escribir un forbucle para cada una de sus dimensiones. Por ejemplo: vector&lt; vector&lt; vector&lt;int&gt; &gt; &gt; A; for (int k=0; k&lt;A.size(); k++) { for (int i=0; i&lt;A[k].size(); i++) { for (int j=0; j&lt;A[k][i].size(); j++) { do_something_on_A(A[k][i][j]); } } } double B[10][8][5]; for …
98 c++  for-loop 

4
¿Cuál es la respuesta correcta para cout << a ++ << a ;?
Recientemente en una entrevista hubo una siguiente pregunta de tipo objetivo. int a = 0; cout &lt;&lt; a++ &lt;&lt; a; Respuestas: a. 10 b. 01 c. comportamiento indefinido Respondí la opción b, es decir, la salida sería "01". Pero para mi sorpresa más tarde, un entrevistador me dijo que la …
98 c++  c++-faq 

14
¿Debo heredar de std :: exception?
He visto al menos una fuente confiable (una clase de C ++ que tomé) que recomienda que las clases de excepción específicas de la aplicación en C ++ deberían heredar std::exception. No tengo claros los beneficios de este enfoque. En C #, las razones para heredar de ApplicationExceptionson claras: obtienes …

4
¿Por qué copiamos y luego nos movemos?
Vi código en algún lugar en el que alguien decidió copiar un objeto y luego moverlo a un miembro de datos de una clase. Esto me dejó confuso porque pensé que el objetivo de mudarse era evitar copiar. Aquí está el ejemplo: struct S { S(std::string str) : data(std::move(str)) {} …

6
(¿Cómo) puedo contar los elementos en una enumeración?
Esta pregunta vino a mi mente, cuando tuve algo como enum Folders {FA, FB, FC}; y quería crear una matriz de contenedores para cada carpeta: ContainerClass*m_containers[3]; .... m_containers[FA] = ...; // etc. (Usar mapas es mucho más elegante de usar: std::map&lt;Folders, ContainerClass*&gt; m_containers; ) Pero volviendo a mi pregunta original: …
98 c++  count  enumeration 

7
Advertencia de C ++: división de doble por cero
Caso 1: #include &lt;iostream&gt; int main() { double d = 15.50; std::cout&lt;&lt;(d/0.0)&lt;&lt;std::endl; } Se compila sin advertencias ni se imprime inf. Bien, C ++ puede manejar la división por cero ( véalo en vivo ). Pero, Caso 2: #include &lt;iostream&gt; int main() { double d = 15.50; std::cout&lt;&lt;(d/0)&lt;&lt;std::endl; } El …

9
¿Cómo convertir de int a char *?
La única forma que conozco es: #include &lt;sstream&gt; #include &lt;string.h&gt; using namespace std; int main() { int number=33; stringstream strs; strs &lt;&lt; number; string temp_str = strs.str(); char* char_type = (char*) temp_str.c_str(); } ¿Pero hay algún método con menos escritura?

2
¿Cuáles son las reglas para el token “…” en el contexto de las plantillas variadas?
En C ++ 11 hay plantillas variadas como esta: template&lt; class T, class... Args &gt; unique_ptr&lt;T&gt; make_unique( Args&amp;&amp;... args ) { return unique_ptr&lt;T&gt;(new T(std::forward&lt;Args&gt;(args)...)); } Hay algunas curiosidades sobre esto: la expresión std::forward&lt;Args&gt;(args)...usa ambos Argsy, argspero solo una ...ficha. Además, std::forwardes una función de plantilla no variada que toma solo …

7
¿Por qué los objetos de la misma clase tienen acceso a los datos privados de los demás?
¿Por qué los objetos de la misma clase tienen acceso a los datos privados de los demás? class TrivialClass { public: TrivialClass(const std::string&amp; data) : mData(data) {}; const std::string&amp; getData(const TrivialClass&amp; rhs) const { return rhs.mData; }; private: std::string mData; }; int main() { TrivialClass a("fish"); TrivialClass b("heads"); std::cout &lt;&lt; …




14
Cómo escribir log base (2) en c / c ++
¿Hay alguna forma de escribir la función de registro (base 2)? El lenguaje C tiene 2 funciones integradas - &gt;&gt; 1. logque es base e. 2. log10base 10; Pero necesito la función de registro de la base 2. Cómo calcular esto.
98 c++  c 

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.