저는 프로그래밍에 익숙하지 않습니다. 배열의 크기를 얻는 방법, 즉 배열 안에 몇 개의 요소가 들어 있는지 알 수 있습니다. 예를 들어 크기 10의 배열을 선언했지만 배열에 3 개의 요소 만 입력하면이 배열의 크기는 어떻게 결정됩니까? 처음에 배치 한 요소가 몇 개인 지 모르겠다면배열의 크기를 얻는 C++
답변
배열을 선언하면 (예 : int array[10]
이면 크기는 항상 10 * sizeof(int)
입니다. 몇 번이나 액세스했는지 알 수있는 방법이 없습니다. 수동으로 추적해야합니다.
컨테이너 클래스 사용을 고려해야합니다. std::vector
:
std::vector<int> vec;
vec.push_back(5);
vec.push_back(10);
vec.push_back(42);
std::cout << vec.size() << "\n"; // Prints "3"
당신은 할 때마다 배열에서 제거 1. 에 의해 증가를 배열로 카운트를 추가 할 때마다 0
으로 초기화 카운터 변수 수를 유지 1.
에 의해 수를 감소언제든지 배열의 크기를 알 수 있습니다.
왜 대답을 내려야 하죠? 제발 도와주세요. – MduSenthil
제안 :
int[10] arr;
//init all to null
for (int i =0; i < 10; i++)
arr[i] = 0;
arr[0]=1;
arr[2]=5;
int sz = 0;
for (int j = 0; j < 10; j++)
if (arr[j] != 0) sz++;
왜 downvote? 기술적으로 나는 부적절한 일을 전혀하지 않았습니다. –
나는 downvote하지 않았지만이 코드는 0이 아닌 요소의 수를 센다. –
10 개 개의 요소의 이전 스타일의 배열을 선언 할 경우, 예를 들어, std::string words[10]
, 배열의 크기는 항상 10 문자열입니다. 새 스타일 (std::array
)이 있더라도 고정 크기가됩니다.
std::vector<>
을 찾고있을 수도 있습니다. 고정 크기가 아니지만 .size()
방법이 있습니다. 당신이 그것에 세 가지 요소를 추가하면 따라서, 그것은 .size()==3
이 ((A)/sizeof 연산자 사전 사용 sizeof 연산자에 당신이 그것을 모르는 가정 (요소 수에) 배열의 크기를 얻을 수있을 것입니다 [0])
다음 예제 프로그램을 참조하십시오. 나는 C를 사용했지만 C++로 잘 옮겨야한다.
#include <stdio.h>
int main(){
int a[10];
printf("%d elements\n",sizeof(a)/sizeof(a[0]));
return 0;
}
//output: 10 elements
사실. 그러나 그것은 OP가 요구하는 것이 아닙니다. –
여러 가지 방법이 있지만 정의에 따라 다르다.
사용자가 입력하지 않는 값 (센티널 값이라고도 함)이 있으면 memset과 같은 함수를 사용하여 전체 배열을 사용되지 않은 값으로 설정할 수 있습니다. 그런 다음 목록에서 해당 값과 일치하지 않는 목록의 모든 변수를 계산하여 반복합니다.
다른 방법은 배열이 수정 될 때마다 계산되는 고유 한 배열 클래스를 작성하는 것입니다. 적절한 경우 = 및 [] 함수를 오버로드해야합니다.
사용자가 변수를 추가 할 때 목록을 보거나 개수를 유지하여 동적으로 연결된 목록을 작성할 수도 있습니다.
그러나 배열을 기본 배열로 취하는 경우 실제 시작 상태인지 전혀 알 수 없으며 사용자가 무엇을 기대해야할지 모르는 경우 (이것이 프로그램이 아니라면 발생하지 않아야 함) , 일반적으로 말하자면, 이것을 알 수있는 방법이 있습니다.
- 1. 매크로가있는 C 배열의 크기를 확인하십시오.
- 2. 배열의 크기를 할당 초기화
- 3. 알 수없는 배열의 크기를 마샬링
- 4. 배열의 값을 얻는 방법
- 5. 배열의 크기를 변경할 수 없습니다
- 6. C++ 매크로에서 유형의 크기를 얻는 것은
- 7. C#, 픽셀 단위로 용지 크기를 얻는 방법?
- 8. 초기화 후 C++ 배열의 크기를 조정할 수 있습니까?
- 9. 어떻게 C/Objective-C에서 배열의 크기를 얻을 수 있습니까?
- 10. GLSurface 크기를 얻는 방법?
- 11. 페이지 크기를 얻는 방법
- 12. 배열 크기를 얻는 방법
- 13. C/C++에서 가상 크기를 얻는 방법은 무엇입니까?
- 14. 함수에 전달 된 경우 배열의 크기를 결정하십시오.
- 15. 명령 줄에서 전역 배열의 크기를 정의하십시오.
- 16. Visual C#에서 배열의 두 번째로 높은 숫자를 얻는 방법?
- 17. C++에서 동적으로 할당 된 배열의 길이를 얻는 방법이 있습니까?
- 18. Mac 데스크탑 크기를 얻는 방법
- 19. CMFCPropertyFontProperty에서 글꼴 크기를 얻는 방법
- 20. 안드로이드에서 캐시 크기를 얻는 방법
- 21. 인증서의 키 크기를 얻는 방법
- 22. 보기의 콘텐츠 크기를 얻는 방법
- 23. Excel에서 범위의 크기를 얻는 방법
- 24. HTML5 - 이미지 크기를 얻는 방법
- 25. 아이폰 컨텍스트 크기를 얻는 방법
- 26. UITableViewCell의 rect 크기를 얻는 방법?
- 27. WebView 콘텐츠 크기를 얻는 방법
- 28. mysql에서 레코드 크기를 얻는 방법
- 29. C 배열의 스트림 배열
- 30. 배열의 요소 이동 C++
@Phonon : 아니요, Java는 배열에 채운 요소 수를 추적하지 않습니다. –
C++뿐만 아니라 일반적으로 프로그래밍에 대한 기본 지식이 부족한 것처럼 보입니다. 괜찮아.나는 당신이 [좋은 C++ 책] (http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) –
@R을 읽어야한다고 제안한다. 네 말이 맞아, 나는 그 질문을 잘못 읽었다. – Phonon