일반 클래스 라이브러리 - 버그, 설명, 질문, 사용 기능 및 제안 사항 - 페이지 24 1...171819202122232425262728293031...38 새 코멘트 Vasiliy Sokolov 2018.11.22 11:11 #231 fxsaber : 키로 값을 얻는 것에 대한 질문입니다. 라이브러리 코드에서 이 메서드는 다음과 같습니다. //+------------------------------------------------------------------+ //| Find index of entry with specified key. | //+------------------------------------------------------------------+ template < typename TKey, typename TValue> int CHashMap::FindEntry(TKey key) { if (m_capacity!= NULL ) { //--- get hash code from key int hash_code=m_comparer.HashCode(key)& 0x7FFFFFFF ; //--- search pair with specified key for ( int i=m_buckets[hash_code%m_capacity] ; i>= 0 ; i=m_entries[i].next ) if (m_entries[i].hash_code==hash_code && m_comparer.Equals(m_entries[i].key,key)) return (i); } return (- 1 ); } 예, 이 코드는 i in for의 비표준 재할당으로 인해 오해의 소지가 있을 수 있습니다. 먼저 인덱스로 하위 배열에 액세스합니다. 여기에는 다음 값이 포함될 수 있습니다. i=m_buckets[hash_code%m_capacity]; (즉, i는 하위 배열 또는 값 바구니의 인덱스입니다). 그런 다음 동일한 for에서 바구니의 인덱스가 바구니의 요소 인덱스로 바뀝니다. i=m_entries[i].next 실제로 코드는 올바르게 작성되었습니다. 일반적인 경우 각 하위 배열은 평균 하나의 요소를 가지며 루프는 다시 평균적으로 한 번만 실행됩니다. fxsaber 2018.11.22 11:20 #232 Vasiliy Sokolov : 예, 이 코드는 i in for의 비표준 재할당으로 인해 오해의 소지가 있을 수 있습니다. 먼저 인덱스로 하위 배열에 액세스합니다. 여기에는 다음 값이 포함될 수 있습니다. i=m_buckets[hash_code%m_capacity]; (즉, i는 하위 배열 또는 값 바구니의 인덱스입니다). 그런 다음 동일한 for에서 바구니의 인덱스가 바구니의 요소 인덱스로 바뀝니다. i=m_entries[i].next 실제로 코드는 올바르게 작성되었습니다. 일반적인 경우 각 하위 배열은 평균 하나의 요소를 가지며 루프는 다시 평균적으로 한 번만 실행됩니다. 충돌의 경우 주기가 만들어지는 것으로 이해했습니다. 미니 목록을 살펴보세요. Vasiliy Sokolov 2018.11.22 11:22 #233 fxsaber : 충돌의 경우 주기가 만들어지는 것으로 이해했습니다. 미니 목록을 살펴보세요. 예, 절대적으로 맞습니다. pavlick_ 2019.01.25 07:13 #234 템플릿 라이브러리( CArrayList )를 사용하여 사용자 지정 유형을 저장합니다. 인상 - 행복하지 않습니다. 최소한의 편의를 위해 매크로를 작성했습니다. #define CLEANUP do { \ for ( int i_cln = 0 ; i_cln < segs.Count(); ++ i_cln) { \ Wave_end *cln_el; \ if ( segs.TryGetValue(i_cln, cln_el) ) \ delete cln_el; \ }} while ( false ) #define SSEG(IND) do { \ if ( ! segs.TryGetValue(IND, we) ) { \ CLEANUP; \ continue ; \ }} while ( false ) TryGetValue의 추가 완전성 + 값으로 클래스를 전달할 수 없기 때문에 사용하기가 어렵습니다. Vladimir Karputov 2019.03.10 11:39 #235 이 주제와 관련이 없는 댓글은 " MQL5 MT5 MetaTrader 5 초보자의 질문 "으로 이동되었습니다. Andrey Pogoreltsev 2019.04.03 07:46 #236 말해봐, 내가 이해하지 못하는 부분이 있을지도 모르지만, 이 유형의 구성을 사용하려고 하면: #include <Generic\\ArrayList.mqh> struct Option { string name; color clr; }; ... CArrayList<Option> _options; 그런 다음 오류가 발생합니다. '옵션' - 개체는 참조로만 전달됩니다. ICollection.mqh 십사 십팔 글쎄, 오류의 전체 스택이 더 있습니다 ... Sergey Eremin 2019.04.03 08:25 #237 Andrey Pogoreltsev : 말해봐, 내가 이해하지 못하는 부분이 있을지도 모르지만, 이 유형의 구성을 사용하려고 하면: 그런 다음 오류가 발생합니다. '옵션' - 개체는 참조로만 전달됩니다. ICollection.mqh 십사 십팔 글쎄, 오류의 전체 스택이 더 있습니다 ... 다음과 같이 시도하십시오. #include <Generic\\ArrayList.mqh> class Option { string name; color clr; }; ... CArrayList<Option * > _options; Andrey Pogoreltsev 2019.04.03 08:50 #238 Sergey Eremin : 다음과 같이 시도하십시오. 컬렉션에 대한 포인터 전달/저장은 개념적으로 잘못되었습니다. TheXpert 2019.04.03 08:53 #239 Andrey Pogoreltsev : 컬렉션에 대한 포인터 전달/저장은 개념적으로 잘못되었습니다. MQL에서는 약간이라도 사용할 수 있는 단일 제네릭이 없습니다. 모두 심각한 잼이 있습니다. 내장 배열을 사용하면 머리가 덜 아프게 됩니다. Andrey Pogoreltsev 2019.04.03 08:55 #240 TheXpert : MQL에서는 약간이라도 사용할 수 있는 단일 제네릭이 없습니다. 모두 심각한 잼이 있습니다. 내장 배열을 사용하면 머리가 덜 아프게 됩니다. 네, 배열 zayuzat. 내장 유형에만 적합한 컬렉션을 만들고 코드베이스에 넣는 이유는 무엇입니까?) 1...171819202122232425262728293031...38 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
키로 값을 얻는 것에 대한 질문입니다. 라이브러리 코드에서 이 메서드는 다음과 같습니다.
예, 이 코드는 i in for의 비표준 재할당으로 인해 오해의 소지가 있을 수 있습니다.
먼저 인덱스로 하위 배열에 액세스합니다. 여기에는 다음 값이 포함될 수 있습니다. i=m_buckets[hash_code%m_capacity]; (즉, i는 하위 배열 또는 값 바구니의 인덱스입니다).
그런 다음 동일한 for에서 바구니의 인덱스가 바구니의 요소 인덱스로 바뀝니다. i=m_entries[i].next
실제로 코드는 올바르게 작성되었습니다. 일반적인 경우 각 하위 배열은 평균 하나의 요소를 가지며 루프는 다시 평균적으로 한 번만 실행됩니다.
예, 이 코드는 i in for의 비표준 재할당으로 인해 오해의 소지가 있을 수 있습니다.
먼저 인덱스로 하위 배열에 액세스합니다. 여기에는 다음 값이 포함될 수 있습니다. i=m_buckets[hash_code%m_capacity]; (즉, i는 하위 배열 또는 값 바구니의 인덱스입니다).
그런 다음 동일한 for에서 바구니의 인덱스가 바구니의 요소 인덱스로 바뀝니다. i=m_entries[i].next
실제로 코드는 올바르게 작성되었습니다. 일반적인 경우 각 하위 배열은 평균 하나의 요소를 가지며 루프는 다시 평균적으로 한 번만 실행됩니다.
충돌의 경우 주기가 만들어지는 것으로 이해했습니다. 미니 목록을 살펴보세요.
충돌의 경우 주기가 만들어지는 것으로 이해했습니다. 미니 목록을 살펴보세요.
예, 절대적으로 맞습니다.
템플릿 라이브러리( CArrayList )를 사용하여 사용자 지정 유형을 저장합니다. 인상 - 행복하지 않습니다. 최소한의 편의를 위해 매크로를 작성했습니다.
TryGetValue의 추가 완전성 + 값으로 클래스를 전달할 수 없기 때문에 사용하기가 어렵습니다.
말해봐, 내가 이해하지 못하는 부분이 있을지도 모르지만, 이 유형의 구성을 사용하려고 하면:
그런 다음 오류가 발생합니다.
'옵션' - 개체는 참조로만 전달됩니다. ICollection.mqh 십사 십팔
글쎄, 오류의 전체 스택이 더 있습니다 ...말해봐, 내가 이해하지 못하는 부분이 있을지도 모르지만, 이 유형의 구성을 사용하려고 하면:
그런 다음 오류가 발생합니다.
'옵션' - 개체는 참조로만 전달됩니다. ICollection.mqh 십사 십팔
글쎄, 오류의 전체 스택이 더 있습니다 ...다음과 같이 시도하십시오.
다음과 같이 시도하십시오.
컬렉션에 대한 포인터 전달/저장은 개념적으로 잘못되었습니다.
컬렉션에 대한 포인터 전달/저장은 개념적으로 잘못되었습니다.
MQL에서는 약간이라도 사용할 수 있는 단일 제네릭이 없습니다. 모두 심각한 잼이 있습니다. 내장 배열을 사용하면 머리가 덜 아프게 됩니다.
MQL에서는 약간이라도 사용할 수 있는 단일 제네릭이 없습니다. 모두 심각한 잼이 있습니다. 내장 배열을 사용하면 머리가 덜 아프게 됩니다.
네, 배열 zayuzat. 내장 유형에만 적합한 컬렉션을 만들고 코드베이스에 넣는 이유는 무엇입니까?)