Konverze int <-> string
Int to string: (zdroj)
#include
stringstream ss; //create a stringstream
ss << number; //add number to the stream
return ss.str(); //return a string with the contents of the stream
#include
string s = boost::lexical_cast( number ); // throws bad_lexical_cast on error
String to int: (zdroj)
int result;
stringstream(st) >> result;
#include
int x = boost::lexical_cast("123"); // throws bad_lexical_cast on error
Iterátory
Bacha na ně - pokud asynchronně někdo modifikuje kontejner během jeho rpocházení, tak může dojít k jeho přealokaci (zvětší s ecapacity) a průběžný iterátor je zneplatněn => SEGFAULT.
Const
Qt
Vlákna (z http://lists.trolltech.com/qt-interest/2007-05/msg01003.html)
"Mark Thompson" wrote in message news:46548D38.1050308@xxxxxxxxxxxxxxx> I am looking for a way to stop (pause) and resume a worker thread from > the main GUI thread.>> myWorkerObject->wait(ULONG_MAX) looks like it will work for stopping the > worker thread.>> However, I don't see how I can have it resume execution.>> Perhaps something involving a QMutex is the better way to go?
While there are platform specific APIs to suspend and resume threads (i.e. SuspendThread and ResumeThread on Windows) there is no API in Qt to suspend a thread that does not cooperate.
In general, suspending a different thread is dangerous, as the thread will be in the middle of an operation, and when resuming the thread the conditions might have changed in ways that are fatal to the thread's current operation. To prevent that you have to use mutexes/semaphores/waitconditions to ensure synchronization, and if you have that in place then you can suspend the thread by acquiring the respective synchronization object already.
To suspend a thread until a certain condition applies, QWaitCondition is the class you should use (wait on it in the thread, wake it up from your controling code).
To make a thread perform a piece of work, post an event or enqueue a signal emission to an object that lives in the thread (the thread has to run an event loop of course).
Volker
Studium QT4
Introduction to Design Patterns in C++ with Qt4
Seriál o Qt4 na abclinuxu.cz
Další...
Předávání referencí vs hodnotou - http://ubuntuforums.org/showthread.php?t=643484 [uloženo].
Prase s křídlama...
Můj oblíbený výrok PePeho. Píšu si seznam věcí, které mně přijdou absurdní a pijou mně u C++ krev...
- Konstanta PI není standardně v žádné knihovně. Kvůli přenositelnosti je nejlepší si je definovat přes #define...
- U atributů tříd static const nelze použít např. double... Zas to umožňují jen rozšíření překladačů. (viz StackOverflow.com, uloženo). Alternativou je udělat to v definičním souboru (ne hlavičkovém), nebo jako const proměnnou v namespace anebo ne-static const proměnnou, která se nainicializuje v konstruktoru. Fuj...