为了解决内存泄露 想要用VECTOR 能给些示例吗

解决方案 »

  1.   

    #include <iostream.h>#include <vector.h>void main() {         vector<char*> v;         v.push_back("me");         v.push_back("you");         v.push_back("he");         v.push_back("she");         for(int i=0;i<4;i++)                   cout<<v[i]<<"\n";} vector<data_type>表示我们可以放入各种资料型别到<...>之中,vector物件便会正确的产生空间存放此型的物件。v.push_back(object)函数则把属于该型别的物件存入容器物件的记忆空间中。  一个vector容器好比一个传统C语言中的阵列,只是传统C语言中的阵列必须明确地指出阵列大小,如果注标值超过边界值,则系统将得到一个未知的错误。然而,STL的vector容器却不然,vector容器自己视需要,自动加大阵列的大小,所以应用程式就不需担心注标值超过阵列范围。图示如三。  start表示阵列起始处,finish表示阵列结束处,end_of_storage表示实际阵列结束的地方,如果阵列仍持续成长,超过end_of_storage,则vector容器会自动在配置一块记忆体,维持注标值不超过边界值。
      

  2.   

    多谢!
    能给出 vector 在vc++中的是实例吗?
    如果我有程序:
     void CDialog::OnAccept()
    {
    CSock *rwSock;
    rwSock=new CSock;
    rwSock->SetParent(this); if(m_sListenSocket->Accept(*rwSock))
    {
    }                                                                                else
    {
    delete rwSock;
    AfxMessageBox("Accept() fail");
    }}
    if{}中,我该怎么编写程序以防止内存泄露呢?
      

  3.   

    这个问题我不清楚,你可以参见<WINDOWS核心编程>
      

  4.   

    #include <vector>
     add a member to your CXXXDialog class
    std::vector<CSock*> m_vecSock; void CDialog::OnAccept()
    {
    CSock *rwSock;
    rwSock=new CSock;
    rwSock->SetParent(this); if(m_sListenSocket->Accept(*rwSock))
    {
    m_vecSock.push_back(rwSock);
    }                                                                                else
    {
    delete rwSock;
    AfxMessageBox("Accept() fail");
    }}
      

  5.   

    CSocket 编程可以看看http://cs.baylor.edu/~donahoo/practical/CSockets/mfc/
      

  6.   

    http://www.codeguru.com/printing/index.shtml