안녕하세요, 나는 C에서 벡터의 사용에 대한 질문이 + +, 난 무작위 모션으로 컨테이너를 통해 입자 운동을 시뮬레이션의 문제에 노력하고 있습니다. 입자를 추가하거나 제거해야 할 필요가 있습니다. 특정 기준을 충족시키지 못하거나이 기준을 충족시키지 못했을 때 벡터 클래스를 매우 편리하게 사용할 수있었습니다. 그러나 C++을 처음 접했을 때 고려해야 할 효율성 문제가있었습니다.std :: vector dimension, "tetris"도형을 사용할 수 있습니까?
정의한 2D 배열이 직사각형 또는 사각형으로 제한됩니까? 각 컨테이너에 입자의 위치 만 저장하면됩니다. 제가 두려워하는 것은 매트릭스가 다음과 같이 보일 것입니다 :
| | | | |
| | | | |
| | | | |
| | | | |
4x4 케이스의 경우. 각 빈/컨테이너의 입자 위치와 빈이 빈과 다른 빈의 수를 입력하면 다음과 같은 것이 가능한지 궁금합니다.
| | | | | 제 1 빈의 4 개의 입자
| | | 제 2 저장소의 2 개의 입자, 점유 된 메모리는 상기보다 2 배 작음
| | | | | | | | | | | | | | | | | 이 세 번째 빈에있는 많은 등등.
또한 행 (행 크기 줄이기)의 요소를 제거하거나 행 (행 크기 증가)의 요소를 추가하거나 또는 알고리즘을 구현하는 방법에 따라 열을 추가해야 할 것입니다. 미리 경고 할 수 있다면 감사하겠습니다. 여러 차원의 벡터를 처리 할 때 일반적인 실수가 있다면 나는
벡터에는 하나의 차원 만 있습니다. 원한다면 벡터의 벡터를 가질 수 있고, 다차원 배열의 경우 Boost.MultiArray를 사용할 수 있습니다. –