PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[問題] 請教一個處理array的問題
作者:
WillBeFine
(努力)
2019-09-12 00:21:52
Sorry! 請教各位:
下列程式, 除了用 for loop 外, 有沒有更快的方法?
int i =0;
int array1[5] = {1,3,5,7,9};
int array2[6];
for (i=0; i<5; i++)
array2[i+1] = array1[i];
抱歉, 謝謝各位...
作者:
helloxin
(日斤)
2019-09-12 00:30:00
memcpy?
作者:
idiont
(supertroller)
2019-09-12 00:47:00
如果你只是想要用1based 可以用int *array2 = array1 - 1;如果你是要複製一份 那還是用memcpy
作者:
s06i06
(三條魚)
2019-09-12 00:59:00
copy(begin(array1), end(array1), array2 + 1)
作者:
firejox
(Tangent)
2019-09-12 01:02:00
for loop + OpenMP
作者:
loveme00835
(髮箍)
2019-09-12 01:22:00
4F 用 begin/end 結果最後 operator+ 破功 xD
作者:
poyenc
(髮箍)
2019-09-12 01:47:00
2F 是 undefined behavior, 指標加回來並且還可以存取陣列元素的前提是: 它原本就指向陣列元素
作者:
djshen
(djshen)
2019-09-12 02:48:00
這種形式compiler有機會幫你vectorize吧
作者:
Schottky
(順風相送)
2019-09-12 07:05:00
同意三樓,看你實際上想做什麼而定,避免copy自然快
作者:
WillBeFine
(努力)
2019-09-12 08:53:00
謝謝各位,就是要在陣列先多塞一個bytes,資料多用for迴圈一定慢所以用 memcpy 較好?? 謝謝..
作者:
Schottky
(順風相送)
2019-09-12 09:08:00
那你覺得一開始就用別的可插入的資料結構會不會更好 XD或是一開始就在 array1 前面預留很多空間可以插入東西另外你這是插入一個 int 不是插入一個 byte
作者:
Gway
(我愛的你 也愛我 好嗎?)
2019-09-12 10:24:00
樓上點出我的疑惑 xD 從idx 1 開始初始化資料 不行嗎? idx0 填0 or -1 or # item個數也行啊
作者:
WillBeFine
(努力)
2019-09-12 11:56:00
因為array1 是傳入的,所以無法改.
作者: tomet (沁)
2019-09-12 13:50:00
你已經把輸入與輸出結果都訂死了,很難有不copy的做法
作者:
bigbite
(子子孫孫永保用)
2019-09-13 10:39:00
poyenc說的undefined behavior我看不懂耶, 問題在哪?
作者:
poyenc
(髮箍)
2019-09-13 13:01:00
樓上可以參考
http://eel.is/c++draft/expr.add#4.2
繼續閱讀
Re: [問題] 關於不同資料卻得到相同地址的問題
poyenc
[問題] 關於不同資料卻得到相同地址的問題
ac01965159
[問題] 用javascript呼叫lua函式
fsvy
Re: [問題] dll 之間傳遞 vector<class>
EricTCartman
[問題] dll 之間傳遞 vector<class>
PythonScript
[問題] 用alloca申請RAM,函式返回後沒有釋放
bashinan
[問題] 請問大家會建議用純C刷Leetcode嗎?
qazkevin
Re: [問題] 字元指標的問題
ando5566
Re: [問題] 字元指標的問題
sakishil
[問題]printf輸出過多時前面字元被擠掉?
melogod
Links
booklink
Contact Us: admin [ a t ] ucptt.com