반응형
연속 메모리가있는 C ++ 벡터에 해당하는 C #?
C ++ 벡터에 해당하는 C #은 무엇입니까?
이 기능을 찾고 있습니다.
표준 배열에 비해 액세스 성능 저하가없는 연속적으로 저장된 메모리의 동적 배열을 갖기 위해.
나는 찾고 있었고 그들은 이렇게 말합니다 .NET equivalent to the vector in C++ is the ArrayList
.
ArrayList에 연속 메모리 기능이 있습니까?
당신은을 사용할 수 있습니다 List<T>
때 T
경우 경우가 아닐 것은 연속적인 메모리에 할당 될 값 타입 T
참조 타입이다.
예:
List<int> integers = new List<int>();
integers.Add(1);
integers.Add(4);
integers.Add(7);
int someElement = integers[1];
를 사용하십시오 List<T>
. 내부적으로 그것은 배열을 사용하고 배열은 연속적인 메모리를 사용합니다.
우선 Arraylist
또는 에서 멀리 떨어져 있습니다 Hashtable
. 이러한 클래스는 제네릭을 위해 사용되지 않는 것으로 간주됩니다. 레거시 목적을 위해 여전히 언어로되어 있습니다.
자, 당신이 찾고있는 것은 List<T>
수업입니다. T가 값 유형이면 연속적인 메모리를 갖게되지만 T가 참조 유형 인 경우에는 분명한 이유가 없습니다.
C #에는 많은 참조 유형이 있습니다. 컨테이너가 참조를 연속적으로 저장하더라도 객체 자체가 힙을 통해 흩어질 수 있습니다.
곧 CLR / C #에서 Vector <>에 대한 더 나은 지원을받을 수있을 것 같습니다.
참고 URL : https://stackoverflow.com/questions/6943229/c-sharp-equivalent-of-c-vector-with-contiguous-memory
반응형
'program tip' 카테고리의 다른 글
현재 Rails 환경을 기반으로 종이 클립의 저장 메커니즘을 어떻게 설정할 수 있습니까? (0) | 2020.10.19 |
---|---|
두 개 이상의 공백과 일치하지만 새 줄은 일치하지 않는 정규식 (0) | 2020.10.19 |
Java Collections singletonMap 메소드는 언제 사용합니까? (0) | 2020.10.19 |
MySQL 데이터베이스에 전화 번호를 저장하는 방법은 무엇입니까? (0) | 2020.10.18 |
Powershell에서 부모의 부모 디렉터리를 얻는 방법은 무엇입니까? (0) | 2020.10.18 |