0
我希望在Accelerate Framework中使用vecLib。我注意到數據類型被typedefed爲'vector'。如何在運行時從c數組中初始化它?vecLib中的向量和c數組
編輯:在Zaph的幫助下,我的問題簡化爲此。
我希望在Accelerate Framework中使用vecLib。我注意到數據類型被typedefed爲'vector'。如何在運行時從c數組中初始化它?vecLib中的向量和c數組
編輯:在Zaph的幫助下,我的問題簡化爲此。
我敢肯定有,如果你通過所有的頭涉水更好的方法,但這似乎工作:
vUInt32 vUI;
uint32_t *vp = (uint32_t *)&vUI;
vp[0] = 0;
vp[1] = 1;
vp[2] = 2;
vp[3] = 3;
實例另外:
uint32_t *vp;
vUInt32 vUI1;
vp = (uint32_t *)&vUI1;
vp[0] = 0;
vp[1] = 1;
vp[2] = 2;
vp[3] = 3;
NSLog(@"vUI1: %d, %d, %d, %d", vp[0], vp[1], vp[2], vp[3]);
vUInt32 vUI2;
vp = (uint32_t *)&vUI2;
vp[0] = 4;
vp[1] = 5;
vp[2] = 6;
vp[3] = 7;
NSLog(@"vUI2: %d, %d, %d, %d", vp[0], vp[1], vp[2], vp[3]);
vUInt32 vUI3 = vU64AddS(vUI1, vUI2);
vp = (uint32_t*)&vUI3;
NSLog(@"vUI3: %d, %d, %d, %d", vp[0], vp[1], vp[2], vp[3]);
的NSLog輸出:
vUI1: 0,1,2,3
vUI2:4,5,6,7
vUI3:4,6,8,10
幫助函數可以這樣創建:
void vUInt32With4Values(uint32_t value0, uint32_t value1, uint32_t value2, uint32_t value3, vUInt32 *vUI) {
uint32_t *vp = (uint32_t *)vUI;
vp[0] = value0;
vp[1] = value1;
vp[2] = value2;
vp[3] = value3;
}
vUInt32 vUI1;
vUInt32With4Values(0, 1, 2, 3, &vUI1);
C++'std :: vector'? – trojanfoe
@trojanfoe我不認爲這是一個C++向量... – Roshan
@Zaph如何在聲明後從c數組初始化它?我不能像'myVector [i] = theArray [i];''myVector'是'vUInt32'這樣的東西,'theArray'是4個無符號32位int的數組,而我可以像'myVector = {14,32,55,42}' – Roshan