Pregunta

Por lo tanto, tengo un vector

 std::vector<std::string> lines. 

Me llenar este vector, y se puede acceder a ella como

 std::string temp = lines[0];

Sin embargo, en la ventana inmediata, tanto

 lines[0] - error:overloaded operator not found

y

 lines.at(0) - error:symbol is ambiguous

no funcionan en absoluto. ¿Hay un truco para el uso de la ventana inmediato con C ++. Estoy sobre todo viniendo de un fondo de C #, donde todo funciona muy bien (y tengo IntelliSense en la ventana Inmediato). Yo no esperaba C ++ para ser grande, pero pensé que trabajaría para cosas además enteros. ¿Puede alguien decirme lo que estoy haciendo mal? Gracias.

Edit: Debo ser claro, nada realmente funciona en la ventana inmediata, esto es sólo un ejemplo simplificado

EDIT: Estoy en el modo de depuración

¿Fue útil?

Solución

Las ventanas inmediatas y de vigilancia no son compatibles con los operadores sobrecargados. Hay algo de apoyo allí para la impresión de contenedores estándar en su conjunto de una manera sensible (véase, por ejemplo rel, http://www.virtualdub.org/blog/pivot/entry.php?id=120 ), pero esto no se extiende a poder usar operator[] en ellos.

Esperamos que esto se mejorará en las revisiones posteriores del depurador, pero por ahora, para mirar el elemento i-ésimo de un vector, lines._Myfirst[i] intentarlo.

(_Myfirst, en las bibliotecas estándar que vienen con VC ++, pasa a ser la variable miembro en un std::vector que apunta al primer elemento de la secuencia. Así que esto es sólo el examen de un vector como si se tratara de cualquier otro objeto. Para resolver esto, tuve que mirar las cabeceras ... no es muy conveniente, pero espero que esto le ayudará. Es probable que pueda hacer algo similar con los otros recipientes, pero tendrá que buscar en las cabeceras de averiguar cómo .)

(Por cierto, si usted ha estado trabajando en C #, C ++ depurador probablemente parece por comparación un poco menos resbaladiza en general, y esto es sólo un ejemplo de eso. Tengo la impresión de que ha habido mucho más trabajo poner en el lado CLR.)

Otros consejos

En versiones de Visual Studio de nowaday (por ejemplo, 2013/2015) variable miembro _Myfirst ya no existe para una variable std :: vector. Uso _C_begin lugar - medios para el ejemplo de uso dado, por ejemplo, lines._C_begin [i].

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top