C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[18197] [만해] 또 STL요~ 흑흑~
만해 [greenuri] 768 읽음    2002-05-06 14:42
안녕하세요 만해입니다.

지금 STL의 생소한 환경에 넘 어렵네요

몇몇 님들의 도움으로 근근히 이어 가고 있는데요

Effective STL하고

STL 튜툐리얼, 레퍼런스 가이드를 보면서 하는데요

흑흑~ 아직 잘 모르겠네요

제 질문은 ~

  bitdeque matrix1(128);
  bitdeque matrix2(128);
  bitmatrix matrix3(8,bitdeque(8));
  bitmatrix matrix4(8,bitdeque(8));
  bitmatrix matrix5(8,bitdeque(8));
  bitmatrix matrix6(8,bitdeque(8));
  Data16Word_u temp;
  bitdeque::iterator iteri;
  bitdeque::iterator iterj;
  bitmatrix::iterator iterm;
  int idx = 0;

  for ( iteri = matrix1.begin() ; iteri < matrix1.end(); idx++)
     {
       *iteri++ = key.Bytes[idx].bits.a;
       *iteri++ = key.Bytes[idx].bits.b;
       *iteri++ = key.Bytes[idx].bits.c;
       *iteri++ = key.Bytes[idx].bits.d;
       *iteri++ = key.Bytes[idx].bits.e;
       *iteri++ = key.Bytes[idx].bits.f;
       *iteri++ = key.Bytes[idx].bits.g;
       *iteri++ = key.Bytes[idx].bits.h;
     }

  copy(matrix1.begin(),matrix1.end(),matrix2.begin());
  rotate(matrix1.begin(),matrix1.begin()+6,matrix1.end());

  for ( iterj = matrix1.begin(), iteri = matrix2.begin() ;
       (iteri < matrix2.end())&&(iterj < matrix1.end());  iteri++,iterj++ )
    *iteri =  *iteri ^ *iterj;

  for (iterm = matrix3.begin(),iteri = matrix1.begin() ; iteri < matrix1.end() ; )
    {
      for ( bitdeque::iterator h = iterm->begin() ; h < iterm->end() ; iterm ++ )
        {
          *h = matrix1[*iteri++];
        }
    }

  맨 마지막 for문에 관련된건데요

  matrix1은 128 이고요

  matrix3, matrix4 는 matrix1을 둘로 쪼개서 앞 부분은 matrix3,

  뒷 부분은 matrix4에 집어 넣어야 하느데요

  copy(matrix1.begin(),matrix1.begin(),matrix3.begin());
  copy(matrix1.begin()+65,matrix1.end(),matrix4.begin());
  copy(matrix2.begin(),matrix2.begin()+64,matrix5.begin());
  copy(matrix2.begin()+65,matrix2.end(),matrix6.begin());
 
  이런식으로 해결을 할려고 하니깐
 
  안되네요

  template <class _RandomAccessIter, class _OutputIter, class _Distance>
inline _OutputIter
__copy(_RandomAccessIter __first, _RandomAccessIter __last,
       _OutputIter __result, const random_access_iterator_tag &, _Distance*) {
  for (_Distance __n = __last - __first; __n > 0; --__n) {
    *__result = *__first;
    ++__first;
    ++__result;
  }
  return __result;
}
  여기 함수에서 에러 난다고 뭐라 뭐라 해는데 뭔애긴지는 모르겠고,

  또 곤란한게 matrix3는 김백일님께서 알려 주신데로

  typedef deque<bool> bitdeque;
  typedef vector<bitdeque> bitmatrix;

  bitmatrix matrix(64) 로 정의된 상태고,
 
  matrix1은 bitdeque(128)이라서

  컨테이너가 틀리는데 서로 copy가 될런지도 모르곘고요 쩝~

  부분 복사 할려는데 잘 모르겠네요 좀 알려 주세요

  참 그리고 김백일님~ STL 강좌좀 해주세요~

  요즘 조금씩 하고 있는데 모르겠네요 강좌좀 해주세요~


 

+ -

관련 글 리스트
18197 [만해] 또 STL요~ 흑흑~ 만해 768 2002/05/06
30023     Re:[만해] 또 STL요~ 흑흑~ 돈데크만 725 2002/05/06
18210     Re:[만해] 또 STL요~ 흑 돈데크만 819 2002/05/06
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.