当前位置: 首页>>代码示例>>C++>>正文


C++ Array::Count方法代码示例

本文整理汇总了C++中Array::Count方法的典型用法代码示例。如果您正苦于以下问题:C++ Array::Count方法的具体用法?C++ Array::Count怎么用?C++ Array::Count使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Array的用法示例。


在下文中一共展示了Array::Count方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: Array

 Array(const Array& src)
 {
   _data=new T*[src.Count()];
   int i;
   for(i=0;i<src.Count();i++)
   {
     _data[i]=new T(src[i]);
   }
   _size=src.Count();
   _count=_size;
   _empty=0;
 }
开发者ID:Maximus5,项目名称:evil-programmers,代码行数:12,代码来源:Array.hpp

示例2: Clean

 void operator=(const Array& src)
 {
   if(this==&src)return;
   Clean();
   _data=new T*[src.Count()];
   int i;
   for(i=0;i<src.Count();i++)
   {
     _data[i]=new T(src[i]);
   }
   _size=src.Count();
   _count=_size;
 }
开发者ID:Maximus5,项目名称:evil-programmers,代码行数:13,代码来源:Array.hpp

示例3: Insert

 int Insert(int index,const Array& src)
 {
   if(index<0)index+=_count;
   if(index<0)return -1;
   if(index>_count)
   {
     Resize(index+src.Count());
     int i;
     InitRange(_count,index);
     for(i=0;i<src.Count();i++)
     {
       _data[index+i]=new T(src[i]);
     }
     _count=index+src.Count();
   }else
   {
     Resize(_count+src.Count());
     Copy(index,index+src.Count(),src.Count());
     int i;
     for(i=0;i<src.Count();i++)
     {
       _data[index+i]=new T(src[i]);
     }
     _count+=src.Count();
   }
   return _count;
 }
开发者ID:Maximus5,项目名称:evil-programmers,代码行数:27,代码来源:Array.hpp

示例4: isLoadBase

 bool isLoadBase(const String& path)
 {
   for(int i=0;i<loadBases.Count();i++)
   {
     if(path.StartWith(loadBases[i]))return true;
   }
   return false;
 }
开发者ID:Maximus5,项目名称:evil-programmers,代码行数:8,代码来源:tags.cpp

示例5: addToLoadBases

 void addToLoadBases(const String& base)
 {
   String path=base;
   path.ToLower();
   for(int i=0;i<loadBases.Count();i++)
   {
     if(loadBases[i]==path)return;
   }
   loadBases.Push(path);
 }
开发者ID:Maximus5,项目名称:evil-programmers,代码行数:10,代码来源:tags.cpp

示例6: GeneralProc

BOOL CALLBACK GeneralProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	switch (uMsg)
	{
		case WM_INITDIALOG:
        {
            // port
            char port[256];
			wsprintf(port, "%d", ConfigDialog::Get()->GetConfig()->GetPort());
			SendDlgItemMessage(hwndDlg, ID_GENERAL_PORT, WM_SETTEXT, 0, (LPARAM)(LPCTSTR)port);

            // password
            const char *pass = ConfigDialog::Get()->GetConfig()->GetPassword();
			SendDlgItemMessage(hwndDlg, ID_GENERAL_PASSWORD, WM_SETTEXT, 0, (LPARAM)(LPCTSTR)pass);
            
			// set all unasigned ip
            char *defip = Server::Get()->ConvertToAddress(DEFAULT_IP_ADDRESS, Server::ByteOrder::Host);
			SendDlgItemMessage(hwndDlg, ID_GENERAL_IP_ADDRESS, CB_ADDSTRING, 0, (LPARAM)(LPCTSTR)defip);
			SendDlgItemMessage(hwndDlg, ID_GENERAL_IP_ADDRESS, CB_SETCURSEL, 0, 0);
            
            // set ip list
            Array<DWORD> ipList;
            Server::Get()->GetIpAddressList(ipList);

            for(unsigned int i=0; i<ipList.Count(); i++)
            {
                char *tmp = Server::Get()->ConvertToAddress(ipList[i], Server::ByteOrder::Host);
				int cur = SendDlgItemMessage(hwndDlg, ID_GENERAL_IP_ADDRESS, CB_ADDSTRING, 0, (LPARAM)(LPCTSTR)tmp);
                if (ConfigDialog::Get()->GetConfig()->GetIpAddress() == ipList[i])
			        SendDlgItemMessage(hwndDlg, ID_GENERAL_IP_ADDRESS, CB_SETCURSEL, cur, 0);
            }

            // auto start
            if (ConfigDialog::Get()->GetConfig()->IsAutoStartEnabled())
			    CheckDlgButton(hwndDlg, ID_GENERAL_AUTO_SERVICE, BST_CHECKED);
            else
			    CheckDlgButton(hwndDlg, ID_GENERAL_AUTO_SERVICE, BST_UNCHECKED);

            break;
        } // WM_INITDIALOG

        case WM_APP_SERIALIZE:
        {
            char tmp[256];

            // port
			SendDlgItemMessage(hwndDlg, ID_GENERAL_PORT, WM_GETTEXT, (WPARAM)sizeof(tmp), (LPARAM)&tmp);
            ConfigDialog::Get()->GetConfig()->SetPort(atoi(tmp));

            // password
			SendDlgItemMessage(hwndDlg, ID_GENERAL_PASSWORD, WM_GETTEXT, (WPARAM)sizeof(tmp), (LPARAM)&tmp);
            ConfigDialog::Get()->GetConfig()->SetPassword(tmp);

            // ip
			SendDlgItemMessage(hwndDlg, ID_GENERAL_IP_ADDRESS, WM_GETTEXT, (WPARAM)sizeof(tmp), (LPARAM)&tmp);
            DWORD ipaddr = Server::Get()->ConvertToIp(tmp);
            ConfigDialog::Get()->GetConfig()->SetIpAddress(ipaddr);

            // auto start
			bool start = (IsDlgButtonChecked(hwndDlg, ID_GENERAL_AUTO_SERVICE) == BST_CHECKED);
            ConfigDialog::Get()->GetConfig()->SetAutoStart(start);

            break;
        } // WM_APP_SERIALIZE

    }

    return FALSE;
}
开发者ID:noxdominus,项目名称:httpq2,代码行数:69,代码来源:configdialog.cpp

示例7: _PathTracking_Update

Void CharEntity::_PathTracking_Update( const Array<WorldPathWaypoint*> & arrPath )
{
    // Destroy path tracking
    _PathTracking_End();

    // Find which waypoint we need to go to next
    Vertex3 vPosition = GetPosition();
    Scalar fSqrDistance, fPrevSqrDistance = SCALAR_INFINITE;
    //Scalar fPrevPrevSqrDistance;

    Assert( m_iLastPassedWaypoint != INVALID_OFFSET );
    UInt iNextWaypoint = m_iLastPassedWaypoint;
    while( iNextWaypoint < arrPath.Count() ) {
        // Detect if the path stops getting closer from our position
        fSqrDistance = ( arrPath[iNextWaypoint]->GetPosition() - vPosition ).NormSqr();
        if ( fSqrDistance > fPrevSqrDistance ) {
            // Either one of those 2 cases : we allways choose i
            // -----*--X--|-----*----------*----
            //     i-1          i
            // -----*-----|--X--*----------*----  where i is iNextWaypoint
            //     i-2         i-1         i
            //if ( iNextWaypoint >= 2 ) {
            //    fPrevPrevSqrDistance = ( arrPath[iNextWaypoint-2]->GetPosition() - vPosition ).NormSqr();
            //    if ( fPrevPrevSqrDistance < fSqrDistance )
            //        --iNextWaypoint;
            //}
            break;
        }
        fPrevSqrDistance = fSqrDistance;

        ++iNextWaypoint;
    }

    // This is a safe assumption ...
    // We allways have the last call to this made way before
    // path tracking is finished, timing is obviously enforced here.
    Assert( iNextWaypoint < arrPath.Count() );
    m_iLastPassedWaypoint = ( iNextWaypoint - 1 );

    WorldPathFinder * pPathFinder = WorldFn->GetPathFinder();
    Bool bFinished = pPathFinder->IsFinished( m_idPathTracking );

    // Recreate path tracking
    EntityFn->SelectMemory( TEXT("Scratch") );

    UInt iControlPointCount = ( arrPath.Count() - iNextWaypoint + 1 );
    UInt iDegree = Min<UInt>( iControlPointCount - 1, 3 );

    Vertex3 * arrControlPoints = New Vertex3[iControlPointCount];
    Scalar * arrParameters = New Scalar[iControlPointCount];
    Vertex2 * arrTravelPoints = New Vertex2[iControlPointCount];

    arrControlPoints[0] = vPosition;
    for( UInt i = 1; i < iControlPointCount - 1; ++i )
        arrControlPoints[i] = arrPath[iNextWaypoint + (i-1)]->GetPosition();
    if ( bFinished )
        arrControlPoints[iControlPointCount - 1] = m_vPathTarget;
    else
        arrControlPoints[iControlPointCount - 1] = arrPath[iNextWaypoint + (iControlPointCount - 2)]->GetPosition();
    m_pLinearPath = New BSplinePatch3( arrControlPoints, iControlPointCount, iDegree, false, false );

    m_pLinearPath->SubDivideByParameter( arrParameters, iControlPointCount );
    for( UInt i = 0; i < iControlPointCount; ++i ) {
        Vector3 vTangent = m_pLinearPath->Tangent( arrParameters[i] );
        arrControlPoints[i].X = 0.0f;
        arrControlPoints[i].Y = 0.0f;
        arrControlPoints[i].Z = MathFn->ArcCos( vTangent * Vector3::eI );
    }
    m_pAngularPath = New BSplinePatch3( arrControlPoints, iControlPointCount, iDegree, false, false );

    Scalar fLength = m_pLinearPath->Curve3::Length();
    Scalar fTime = ( fLength / m_pCharacter->GetMovementSpeed() );
    Scalar fLengthInterval = ( fLength / (Scalar)(iControlPointCount - 1) );
    Scalar fTimeInterval = ( fTime / (Scalar)(iControlPointCount - 1) );
    Scalar fX = 0.0f, fY = 0.0f;
    for( UInt i = 0; i < iControlPointCount; ++i ) {
        arrTravelPoints[i].X = fX;
        arrTravelPoints[i].Y = fY;
        fX += fLengthInterval;
        fY += fTimeInterval;
    }
    m_pLinearTravel = New BSplinePatch2( arrTravelPoints, iControlPointCount, iDegree, false, false );
    m_pAngularTravel = New BSplinePatch2( arrTravelPoints, iControlPointCount, iDegree, false, false );

    DeleteA( arrTravelPoints );
    arrTravelPoints = NULL;
    DeleteA( arrParameters );
    arrParameters = NULL;
    DeleteA( arrControlPoints );
    arrControlPoints = NULL;

    EntityFn->UnSelectMemory();

    // Disable character controller
    m_pController->SetStanding();

    KinematicBody * pBody = (KinematicBody*)m_pBody;
    m_pController->Enabled = false;
    pBody->DetachMotionController();

//.........这里部分代码省略.........
开发者ID:Shikifuyin,项目名称:Scarab-Engine,代码行数:101,代码来源:CharEntity.cpp

示例8: _PathTracking_Start

Void CharEntity::_PathTracking_Start( const Array<WorldPathWaypoint*> & arrPath )
{
    Assert( m_pPathController == NULL );

    WorldPathFinder * pPathFinder = WorldFn->GetPathFinder();
    Bool bFinished = pPathFinder->IsFinished( m_idPathTracking );

    // Create path data
    EntityFn->SelectMemory( TEXT("Scratch") );

    Bool bBias = false;
    UInt iControlPointCount = arrPath.Count();
    if ( iControlPointCount == 1 ) {
        Assert( bFinished );
        ++iControlPointCount;
        bBias = true;
    }
    UInt iDegree = Min<UInt>( iControlPointCount - 1, 3 );

    Vertex3 * arrControlPoints = New Vertex3[iControlPointCount];
    Scalar * arrParameters = New Scalar[iControlPointCount];
    Vertex2 * arrTravelPoints = New Vertex2[iControlPointCount];

    arrControlPoints[0] = GetPosition();
    if ( bBias )
        arrControlPoints[1] = m_vPathTarget;
    else {
        for( UInt i = 1; i < iControlPointCount - 1; ++i )
            arrControlPoints[i] = arrPath[i]->GetPosition();
        if ( bFinished )
            arrControlPoints[iControlPointCount - 1] = m_vPathTarget;
        else
            arrControlPoints[iControlPointCount - 1] = arrPath[iControlPointCount - 1]->GetPosition();
    }
    m_pLinearPath = New BSplinePatch3( arrControlPoints, iControlPointCount, iDegree, false, false );

    m_pLinearPath->SubDivideByParameter( arrParameters, iControlPointCount );
    for( UInt i = 0; i < iControlPointCount; ++i ) {
        Vector3 vTangent = m_pLinearPath->Tangent( arrParameters[i] );
        arrControlPoints[i].X = 0.0f;
        arrControlPoints[i].Y = 0.0f;
        arrControlPoints[i].Z = MathFn->ArcCos( vTangent * Vector3::eI );
    }
    m_pAngularPath = New BSplinePatch3( arrControlPoints, iControlPointCount, iDegree, false, false );

    Scalar fLength = m_pLinearPath->Curve3::Length();
    Scalar fTime = ( fLength / m_pCharacter->GetMovementSpeed() );
    Scalar fLengthInterval = ( fLength / (Scalar)(iControlPointCount - 1) );
    Scalar fTimeInterval = ( fTime / (Scalar)(iControlPointCount - 1) );
    Scalar fX = 0.0f, fY = 0.0f;
    for( UInt i = 0; i < iControlPointCount; ++i ) {
        arrTravelPoints[i].X = fX;
        arrTravelPoints[i].Y = fY;
        fX += fLengthInterval;
        fY += fTimeInterval;
    }
    m_pLinearTravel = New BSplinePatch2( arrTravelPoints, iControlPointCount, iDegree, false, false );
    m_pAngularTravel = New BSplinePatch2( arrTravelPoints, iControlPointCount, iDegree, false, false );

    DeleteA( arrTravelPoints );
    arrTravelPoints = NULL;
    DeleteA( arrParameters );
    arrParameters = NULL;
    DeleteA( arrControlPoints );
    arrControlPoints = NULL;

    EntityFn->UnSelectMemory();

    // Disable character controller
    m_pController->SetStanding();

    KinematicBody * pBody = (KinematicBody*)m_pBody;
    m_pController->Enabled = false;
    pBody->DetachMotionController();

    // Enable path controller
    m_pPathController = PhysicsFn->CreatePathController( TEXT("PathController"), m_pLinearPath, m_pLinearTravel,
                        m_pAngularPath, m_pAngularTravel, EULER_ANGLES_ZYX );

    m_pPathController->Enabled = true;
    m_pPathController->MaxTime = fTime;
    pBody->AttachController( m_pPathController );
}
开发者ID:Shikifuyin,项目名称:Scarab-Engine,代码行数:83,代码来源:CharEntity.cpp

示例9: OpenPlugin

FARAPI(HANDLE) OpenPlugin(int OpenFrom,int Item)
{
  UpdateConfig();
  if(OpenFrom==OPEN_EDITOR)
  {
    //DebugBreak();
    EditorInfo ei;
    I.EditorControl(ECTL_GETINFO,&ei);
    Autoload(ei.FileName);
    if(Count()==0)
    {
      Msg(MENotLoaded);
      return INVALID_HANDLE_VALUE;
    }
    MenuList ml;
    enum{
      miFindSymbol,miUndo,miResetUndo,
      miComplete,miBrowseFile,miBrowseClass,
    };
    ml<<MI(MFindSymbol,miFindSymbol)
      <<MI(MCompleteSymbol,miComplete)
      <<MI(MUndoNavigation,miUndo)
      <<MI(MResetUndo,miResetUndo)
      <<MI(MBrowseSymbolsInFile,miBrowseFile)
      <<MI(MBrowseClass,miBrowseClass);
    int res=Menu(GetMsg(MPlugin),ml,0);
    if(res==-1)return INVALID_HANDLE_VALUE;
    switch(res)
    {
      case miFindSymbol:
      {
        String word=GetWord();
        if(word.Length()==0)return INVALID_HANDLE_VALUE;
        //Msg(word);
        PTagArray ta=Find(word,ei.FileName);
        if(!ta)
        {
          Msg(GetMsg(MNotFound));
          return INVALID_HANDLE_VALUE;
        }
        TagInfo *ti;
        if(ta->Count()==1)
        {
          ti=(*ta)[0];
        }else
        {
          ti=TagsMenu(ta);
        }
        if(ti)NavigateTo(ti);
        FreeTagsArray(ta);
      }break;
      case miUndo:
      {
        if(UndoArray.Count()==0)return INVALID_HANDLE_VALUE;
        /*char b[32];
        sprintf(b,"%d",ei.CurState);
        Msg(b);*/
        if(ei.CurState==ECSTATE_SAVED)
        {
          I.EditorControl(ECTL_QUIT,NULL);
          I.AdvControl(I.ModuleNumber,ACTL_COMMIT,(void*)-1);
        }
        SUndoInfo ui;
        UndoArray.Pop(ui);
        SetPos(ui.file,ui.line,ui.pos,ui.top,ui.left);
      }break;
      case miResetUndo:
      {
        UndoArray.Clean();
      }break;
      case miComplete:
      {
        EditorInfo ei;
        I.EditorControl(ECTL_GETINFO,&ei);
        String word=GetWord(1);
        if(word.Length()==0)return INVALID_HANDLE_VALUE;
        StrList lst;
        FindParts(ei.FileName,word,lst);
        if(lst.Count()==0)
        {
          Msg(MNothingFound);
          return INVALID_HANDLE_VALUE;
        }
        int res;
        if(lst.Count()>1)
        {
          MenuList ml;
          for(int i=0;i<lst.Count();i++)
          {
            ml<<MI(lst[i],i);
          }
          res=Menu(GetMsg(MSelectSymbol),ml,0,MF_FILTER|MF_SHOWCOUNT,(void*)word.Str());
          if(res==-1)return INVALID_HANDLE_VALUE;
        }else
        {
          res=0;
        }
        EditorGetString egs;
        egs.StringNumber=-1;
        I.EditorControl(ECTL_GETSTRING,&egs);
//.........这里部分代码省略.........
开发者ID:Maximus5,项目名称:evil-programmers,代码行数:101,代码来源:plugin.cpp


注:本文中的Array::Count方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。