C++ 面試問題&資料整理

(1)TCP三次握手過程, 與爲啥需要採用三次握手; 
(2)TCP TIME_WAIT狀態的原因; 
http://blog.csdn.net/whuslei/article/details/6667471/
http://blog.csdn.net/oney139/article/details/8103223


(3)C++ 虛函數機制(C++對象模型); 
http://blog.csdn.net/jiangnanyouzi/article/details/3720807


(4)C++ Static關鍵字; 
http://www.cnblogs.com/BeyondAnyTime/archive/2012/06/08/2542315.html


(5)Select/Poll/Epoll的異同(使用與內部實現方面); 


http://www.cnblogs.com/Chentc/archive/2011/05/19/2050818.html
http://www.cnblogs.com/Anker/p/3258674.html
http://www.cnblogs.com/Anker/p/3261006.html
http://blog.csdn.net/turkeyzhou/article/details/8504554


http://www.360doc.com/content/14/0102/11/12892305_342001086.shtml


(6)C++迭代器失效問題(iterator原理); 
http://blog.csdn.net/scyatcs/article/details/9003295
http://liyinlei.iteye.com/blog/2037795


iterator這裏就相當於指向節點的指針,內存沒有變,指向內存的指針怎麼會失效呢(當然被刪除的那個元素本身已經失效了)。相對於vector來說,每一次刪除和插入,指針都有可能失效,調用push_back在尾部插入也是如此。因爲爲了保證內部數據的連續存放,iterator指向的那塊內存在刪除和插入過程中可能已經被其他內存覆蓋或者內存已經被釋放了。即使時push_back的時候,容器內部空間可能不夠,需要一塊新的更大的內存,只有把以前的內存釋放,申請新的更大的內存,複製已有的數據元素到新的內存,最後把需要插入的元素放到最後,那麼以前的內存指針自然就不可用了。特別時在和find等算法在一起使用的時候,牢記這個原則:不要使用過期的iterator。


(7)map/set容器的實現原理(紅黑樹知識+STL容器內部原理);
http://blog.csdn.net/dodolzg/article/details/6127938
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章