es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Función candidata de C++ no viable.

Intenté imprimir un vector vacío, pero recibí el siguiente error:

/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/ostream:220:20: nota: función candidata no viable: no se conoce conversión de 'vector<int>' a 'basic_streambuf<><char>::char_type> *' (también conocido como 'basic_streambuf<char> *') para el primer argumento
    basic_ostream& operator<<(basic_streambuf<char_type, traits_type=""> __sb);
                   ^

/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/ostream:223:20: nota: función candidata no viable: no se conoce conversión de 'vector<int>' a 'std::nullptr_t' para el primer argumento
    basic_ostream& operator<<(nullptr_t)

También intenté hacer std::cout << vec << std::endl; pero aún no funciona.

Aquí está mi código:

“`
#include <iostream>
#include <string>
#include <fstream>
#include <vector>

using namespace std;

int main() {
vector<int> vec(5);
cout << vec << endl;
return 0;
}
“`</char_type,>

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que no hay una conversión conocida desde el vector de enteros hasta el argumento esperado en el flujo de salida. Esto se debe probablemente a la falta de un operador de salida definido para el tipo vector.

    Para imprimir un vector vacío, simplemente se puede utilizar la instrucción std::cout sin pasar el vector como argumento. Por ejemplo:

    “`c++
    #include
    #include

    int main() {
    std::vector vec;
    std::cout << “Vector vacío: “;
    std::cout << std::endl;
    return 0;
    }


    Este código debería imprimir "Vector vacío:". Si quisieras imprimir el contenido del vector, deberías usar un loop para iterar a través de los elementos e imprimirlos uno por uno. Alternativamente, si quisieras imprimir el tamaño inicial del vector, podrías modificar el código de la siguiente manera: ```c++ #include <iostream> #include <vector> int main() { std::vector<int> vec(5); std::cout << "Tamaño inicial del vector: " << vec.size() << std::endl; return 0; }

    Este código debería imprimir “Tamaño inicial del vector: 5”.

Comments are closed.