📄 testloopn.cpp
字号:
// TestLoopN.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
// 字符串序列
typedef vector< CString > VEC_STRING;
// 二维数组
typedef vector< VEC_STRING > VEC_DYADIC_STRING;
// 数字
typedef vector< int > VEC_INT;
int nOutNum = 0;
int loop( VEC_DYADIC_STRING vecDyadic,
int& nMax,
int& nCurDeep,
VEC_INT& vecInt,
VEC_INT& vecInt2 );
int deleteVecBehindSepVal( VEC_INT& vecInt,
int nDeletePos );
int _tmain(int argc, _TCHAR* argv[])
{
VEC_DYADIC_STRING vecDyadic;
VEC_STRING vecString;
vecString.push_back( _T( "Owen" ) );
vecString.push_back( _T( "Jason" ) );
vecString.push_back( _T( "Erin" ) );
vecDyadic.push_back( vecString );
vecString.clear();
vecString.push_back( _T( "Joy" ) );
vecString.push_back( _T( "Frank" ) );
vecString.push_back( _T( "Jack" ) );
vecDyadic.push_back( vecString );
vecString.clear();
vecString.push_back( _T( "Todd" ) );
vecString.push_back( _T( "Tracy" ) );
vecString.push_back( _T( "Bees" ) );
vecString.push_back( _T( "Warren" ) );
vecDyadic.push_back( vecString );
vecString.clear();
vecString.push_back( _T( "STL" ) );
vecString.push_back( _T( "COM" ) );
vecString.push_back( _T( "MFC" ) );
vecString.push_back( _T( "Java" ) );
vecString.push_back( _T( "Design Pattern" ) );
vecDyadic.push_back( vecString );
vecString.clear();
vecString.push_back( _T( "BasketBall" ) );
vecString.push_back( _T( "Badminton" ) );
vecString.push_back( _T( "Tenis" ) );
vecString.push_back( _T( "Football" ) );
vecString.push_back( _T( "Ping Pang" ) );
vecString.push_back( _T( "volleyball" ) );
vecDyadic.push_back( vecString );
VEC_INT vecInt;
VEC_INT vecInt2;
int nMax = vecDyadic.size();
int nCurDeep = 0;
loop( vecDyadic, nMax, nCurDeep, vecInt, vecInt2 );
cout<<_T( "The number of out : ")<<nOutNum<<endl;
return 0;
}
int loop( VEC_DYADIC_STRING vecDyadic,
int& nMax,
int& nCurDeep,
VEC_INT& vecInt,
VEC_INT& vecInt2 )
{
vecInt.push_back( nCurDeep );
for ( UINT i = 0; i < vecDyadic[nCurDeep].size(); i++ )
{
if ( nMax > 1 )
{
nMax--;
nCurDeep++;
vecInt2.push_back( i );
loop( vecDyadic, nMax, nCurDeep, vecInt, vecInt2 );
}
else
{
//char* pData;
//USES_CONVERSION;
//pData = T2A( vecDyadic[nCurDeep][i] );
for ( UINT j = 0; j < vecInt2.size(); j++ )
{
cout<<vecDyadic[vecInt[j]][vecInt2[j]]<<_T( " " );
}
cout<<vecDyadic[nCurDeep][i]<<endl;
nOutNum++;
}
}
deleteVecBehindSepVal( vecInt, nCurDeep );
nMax++;
nCurDeep--;
deleteVecBehindSepVal( vecInt2, nCurDeep );
return 0;
}
int deleteVecBehindSepVal( VEC_INT& vecInt,
int nDeletePos )
{
VEC_INT::iterator iter;
int nPos = 0;
iter = vecInt.begin();
if ( nDeletePos == 0 )
{
vecInt.erase( iter, vecInt.end() );
}
else
{
for ( ; iter != vecInt.end(); )
{
nPos++;
iter++;
if ( nPos == nDeletePos )
{
vecInt.erase( iter, vecInt.end() );
break;
}
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -