code

여러 값의 C ++ 배열 할당

codestyles 2020. 12. 9. 08:12
반응형

여러 값의 C ++ 배열 할당


따라서 배열을 초기화 할 때 한 지점에서 여러 값을 할당 할 수 있습니다.

int array [] = {1,3,34,5,6}

하지만 배열이 이미 초기화되어 있고 해당 배열의 요소 값을 한 줄로 완전히 바꾸려면 어떻게해야합니까?

그래서

int array [] = {1,3,34,5,6}
array [] = {34,2,4,5,6}

작동하지 않는 것 같습니다 ...

그렇게 할 수있는 방법이 있습니까?


초기화할당 에는 차이가 있습니다 . 원하는 것은 초기화가 아니라 할당입니다. 그러나 배열에 대한 이러한 할당은 C ++에서 불가능합니다.

수행 할 수있는 작업은 다음과 같습니다.

#include <algorithm>

int array [] = {1,3,34,5,6};
int newarr [] = {34,2,4,5,6};
std::copy(newarr, newarr + 5, array);

그러나 C ++ 0x에서는 다음을 수행 할 수 있습니다.

std::vector<int> array = {1,3,34,5,6};
array = {34,2,4,5,6};

물론 std::vector원시 배열 대신 사용하도록 선택하면 .


다음과 같은 방법으로 값 하나를 교체해야 하나 등을위한 루프 또는 사용하는 것과 같은 또 다른 이상 다른 배열을 복사하는 등의 memcpy(..)또는std::copy

예 :

for (int i = 0; i < arrayLength; i++) {
    array[i] = newValue[i];
}

경계를 벗어난 문제를 방지하기 위해 발생해야하는 적절한 경계 검사 및 기타 검사를 확인하십시오.


const static int newvals[] = {34,2,4,5,6};

std::copy(newvals, newvals+sizeof(newvals)/sizeof(newvals[0]), array);

참고 URL : https://stackoverflow.com/questions/5732798/c-array-assignment-of-multiple-values

반응형