Wpis z mikrobloga

Programuję w C++ i przechodzę właśnie z Qt na MSVS. Przyzwyczajony jestem do tego, że wszystko zawsze robiłem w klasach Qt, a więc np. praktycznie nie znam biblioteki standardowej, a jedynie takie klasy jak QString czy QList, a nie std::string czy std::vector i używałem zawsze tych zamienników (nawet qint32 zamiast int). Staram się jakoś po kolei przeglądać dokumentację Visual C++ i odszukiwać zamienników STD w MSVS, ale widzę, że w przykładach są najczęściej klasy biblioteki standardowej właśnie i mimo, że jestem w stanie odszukać jakieś zamienniki (np. stdin/stdout zamiast std::cin/cout i jakieś WCHAR dla napisów) to nie wiem kiedy i gdzie co stosować.
1) Czy w MSVS używa się kontenerów STD czy własnych?
2) Dla aplikacji konsolowych znalazłem zarówno to:
https://docs.microsoft.com/en-us/cpp/c-runtime-library/input-and-output?view=vs-2019
jak i to:
https://docs.microsoft.com/en-us/cpp/standard-library/iostream-programming?view=vs-2019
Czego powinienem używać, co jest standardem?
3) Jakiej klasy używa się do napisów tak by później je podawać widgetom w aplikacjach okienkowych?

#programowanie #cpp #visualstudio
  • 5
@Capt_S: STD to standard. Bez znaczenia czy to windows czy linux i tego powinieneś się trzymać, używanie Qt też nie implikuje porzucenia jego.

2) Dla aplikacji konsolowych znalazłem zarówno to:

https://docs.microsoft.com/en-us/cpp/c-runtime-library/input-and-output?view=vs-2019

jak i to:

https://docs.microsoft.com/en-us/cpp/standard-library/iostream-programming?view=vs-2019

Czego powinienem używać, co jest standardem?

1 to zwykle funkcje C, 2 to streamy; ludzie korzystają głównie ze streamow

pkt 1 i 3 zupełnie są nie jasne dla mnie

Co do intów to polecam header cstdint
@longstar: no bo np. w Qt nie używasz std::vector czy std::string, masz klasy QList, QString itd. i one są trochę różne od swoich odpowiedników w STD i raczej ich używasz, bo widgety i wszystkie funkcje przyjmują właśnie te klasy za argumenty. Rozumiem, że w MSVS nie ma czegoś takiego?
@Capt_S: Przeczytaj co to jest MSVS i zapytaj się jeszcze raz czy o to ci chodzi. Nie rozumiesz różnicy między frameworkiem (Qt) a MSVS (IDE, a pewnie ci chodzi o MSVC czyli "microsoftowy" toolset który posiada też własną implementację standardu C++). Co najwyżej możesz powiedzieć, że przechodzisz z Qt na WinApi/(odpowiednik Qt stricte windowsowy).
@Capt_S: MSVS to tylko IDE więc środowisko programistyczne (edytor, debugger i kompilator). Qt to framework który posiada wiele własnych implementacji tworów które są np. w bibliotece standardowej (np. właśnie QVector zamiast std::vector).
Posługując się np. QString-iem masz bardzo ułatwioną robotę bo jest to bardzo rozbudowany twór względem zwykłego std::string. Główna różnica jest właśnie taka, że te elementy Qt które mają swoje odpowiedniki w bibliotece STD są znacznie bardziej rozbudowane i łatwiej