간단한 질문인데, unsigned char std::vector
을 사용하고 에 length
이라는 문자를내는 함수를 작성하는 방법은 무엇입니까? 감사!부호없는 char std :: vector에서 unsigned char []?
아, 내 문제는 std :: vector에 대한 내 지식이었습니다. 나는 항상 std :: vector가 선형 적으로 그 값을 유지하지 않는다고 믿었다. 그게 내 많은 문제를 해결해 줬어. 감사!
간단한 질문인데, unsigned char std::vector
을 사용하고 에 length
이라는 문자를내는 함수를 작성하는 방법은 무엇입니까? 감사!부호없는 char std :: vector에서 unsigned char []?
아, 내 문제는 std :: vector에 대한 내 지식이었습니다. 나는 항상 std :: vector가 선형 적으로 그 값을 유지하지 않는다고 믿었다. 그게 내 많은 문제를 해결해 줬어. 감사!
그냥 사용 : &v.front()
.
사본이 필요한 경우 std::copy
을 사용하십시오.
또는 "STL-sequence-container-requirement-version" '& v [0]'. –
그래, 나는 그들이 같다고 생각한다. 나는 항상 v.front() 변종을 선호했지만 v> [0]이 더 많이 사용된다는 것을 배웠다. –
내가 더 많이 사용한다고 생각하는 유일한 이유는 표준에서 사용되는 구문이라는 것입니다. –
불행하게도, 그것은 하나의 라이너 아니지만, 너무 나쁘지 않아 :
std::vector<unsigned char> v(10);
unsigned char* a = new unsigned char[v.size()];
std::copy(v.begin(), v.end(), a);
delete [] a;
이유는 단지 V [0]'기본'문자 []'와'V에 대한 포인터를 얻기 위해'& 사용할 수 없습니다. size()'길이를 얻으려면? 데이터를 다른 배열에 복사해야합니까? 최종 목표는 정확히 무엇입니까? –
'data()'메소드를 사용할 수 있습니다. & v [0]과 동일한 작업을 수행하지만 불행히도 표준이 아닙니다. http://msdn.microsoft.com/en-us/library/dd647618.aspx – Gunslinger47