如何理解TCP面向字節(jié)流人断,UDP面向報文
UDP面向報文:UDP對應(yīng)用層交下來的報文,既不合并也不拆分番刊,而是保留這些報文的邊界,也就是說應(yīng)用層交給UDP多長報文影锈,UDP照常發(fā)送芹务,一次發(fā)送一個報文。
TCP面向字節(jié)流:雖然應(yīng)用程序和TCP的交互是一次一個數(shù)據(jù)塊(大小不等)鸭廷,但是TCP把應(yīng)用程序交下來的數(shù)據(jù)僅僅看成是一連串的無結(jié)構(gòu)的字節(jié)流枣抱,TCP并不知道所傳送的字節(jié)流的含義。另外如果應(yīng)用進程傳送到TCP緩存的數(shù)據(jù)塊太長辆床,TCP就可以把它劃分短一些再傳送佳晶,如果數(shù)據(jù)塊太短,也可以累積幾次一起發(fā)送讼载。
Qt的優(yōu)點:
1)具有優(yōu)良的跨平臺特性:Qt支持一下的操作系統(tǒng)Microsoft Windows 95/98轿秧, Microsoft Windows NT, Linux咨堤, Solaris菇篡, SunOS, HP-UX一喘, Digital UNIX (OSF/1驱还, Tru64), Irix凸克, FreeBSD议蟆, BSD/OS, SCO萎战, AIX咐容, OS390,QNX 等等蚂维。
2)Qt是面向?qū)ο蟮模篞t對于用戶開發(fā)而言是十分方便的疟丙,因為Qt良好的封裝機制令Qt的模塊化程度非常高并且可重用性好颖侄。而且在Qt中也提供了一種稱為signals/slots 的安全類型用以代替了callback,這樣子各個元件之間的協(xié)同工作都會變得簡單享郊。
3)Qt具有豐富的API:在Qt中包括了至少250個的C++類览祖,并且還提供了基于模板的 collections,serialization炊琉,file展蒂,I/O device,directory management苔咪,date/time 類锰悼。甚至還包括正則表達式的處理 功能。
4)Qt支持2D/3D圖形渲染团赏,并且支持OpenGL箕般。
5)Qt支持大量的文檔開發(fā)。
6)有XML的支持舔清。
class Minstack
{
public:
? ? void push(int v);
? ? int pop();
? ? int getMin();
};
最小棧丝里,使得getmin能夠返回棧中最小值,O(1)時間復(fù)雜度体谒。
思路:使用兩個棧杯聚,一個棧存放輸入的數(shù)據(jù),一個棧存放當(dāng)前棧中的最小數(shù)據(jù)抒痒。
stack<int> st,mst;
void Minstack::push(int v)
{
?st.push(v);
? ? if(mst.empty())
????{? ? ? ? ? ?
? ? ? ? ? ? mst.push(v);
????}
? ? ? if(mst.top() > v)
? ? ? ? {
? ? ? ? ? ? mst.push(v);
????????}
}
int Minstack::pop()
{
? ? ? ? int tmp = st.pop();
? ? ? ? if(mst.top() == tmp)
? ? ? ? ? ? ? ? mst.pop();
}
int Minstack::getMin()
{
? ? return mst.top();
}