Re: [問題] 用class宣告的方法運算動態陣列
: → fatrabitree: 你是要練習還是要用? 07/24 01:43
: → fatrabitree: 要用的話就用std::vector就好了 07/24 01:43
: → fatrabitree: 要練習的話也可以去翻vector的實作 07/24 01:44
我找到用vector寫動態陣列的code了,不過我遇到新的問題:
在main裡面呼叫副程式,陣列有傳進去副程式裡面,在副程式裡面對陣列做運算也有成功
,不過沒有回傳到main裡面......我應該在副程式裡加什麼動作嗎?
#include <iostream>
#include <vector>
#include "conio.h"
using namespace std;
void cal1(vector<vector<int> > ivec){
for(int y = 0; y != ivec.size(); ++y) {
for(int x = 0; x != ivec[0].size(); ++x) {
cout << ivec[y][x] << endl;
ivec[y][x] = ivec[y][x] + 1;
cout << ivec[y][x] << endl << endl;
// 這裡的輸出的確有對ivec做改變了
}
}
}
int main() {
const int sizex = 3;
const int sizey = 2;
vector<vector<int> > ivec(sizey, vector<int>(sizex));
for(int y = 0; y != sizey; ++y) {
for(int x = 0; x != sizex; ++x) {
ivec[y][x] = y + x;
}
}
for(int y = 0; y != sizey; ++y) {
for(int x = 0; x != sizex; ++x) {
cout << ivec[y][x] << endl;
}
}
cout << endl << endl;
//未呼叫副程式前的初始值是0,1,2,1,2,3
cal1(ivec);
//各元素值加1,在副程式裡有cout,結果是正確的
cout << endl;
for(int y = 0; y != sizey; ++y) {
for(int x = 0; x != sizex; ++x) {
cout << ivec[y][x] << endl;
}
}
//再cout出來時,ivec沒有改變......應該是沒有回傳回來
//我應該在副程式裡加什麼,才能讓改變後的值傳回來呢?
//順便問一下:我如果引入兩組以上的陣列到副程式裡做運算,且兩組
//陣列都有被改變,我要怎麼把它們都傳回main呢?
system("pause");
}
: 推 EdisonX: 資料量還算正常 (算一下大概 500MB) , 不過程式跑一週... 07/25 01:49
: 推 Sunal: 看原PO跑數值模擬應該不是CS本科 07/25 01:50
我如果是CS本科,連引數都不會的話,我真的該去跳樓了......
我以前大四去修C++,學期還沒到一半就已經開始混了......學期末的上機考也很爛,
資料結構的觀念也很弱......
: → EdisonX: 是 Alg. 那裡沒弄好 , 還是 O2 沒開 , 還是本來就那麼久? 07/25 01:50
: → Sunal: 畢竟物理現象要算的對才是重要 不過跑一週... 07/25 01:51
: → EdisonX: 我跑超過 3 分鐘就受不了要停下來了.. 萬一一週後的結果 07/25 01:52
: → EdisonX: 是錯的 , 那不是還要再重跑一週 , 想到都軟了 Orz 07/25 01:52
: → EdisonX: 對了 , 有種東西叫 intel library ... 07/25 01:53
: → EdisonX: 然後你發的 sample code, 叫 intel library 做比你自己 07/25 01:57
: → EdisonX: 寫速度還要快很多。 07/25 01:57
我在讀計算流體力學(數值模擬)方面的博班,跑一週還算短的,
以前我們研究室碩班的學妹,用套裝軟體(FLUENT)跑80萬網格的VOF(有自由液面的那
種case),還有跑超過兩個星期的......
所以我們都要先測試小domain,確定物理現象是對的,才敢跑大domain。
其實說實話,我們只要會基本的程式流程就可以跑模擬了,我們難是難在數學的model
不易理解。所以當我需要稍微進階一點點的程式技巧的時候,我就需要來這裡求助了..
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.228.130.48
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1437768418.A.94D.html
※ 編輯: moussorgsky (36.228.130.48), 07/25/2015 04:08:53
※ 編輯: moussorgsky (36.228.134.66), 07/25/2015 04:32:54
※ 編輯: moussorgsky (36.228.134.66), 07/25/2015 04:33:57
→
07/25 07:43, , 1F
07/25 07:43, 1F
→
07/25 07:43, , 2F
07/25 07:43, 2F
→
07/25 10:39, , 3F
07/25 10:39, 3F
推
07/25 11:09, , 4F
07/25 11:09, 4F
→
07/25 11:59, , 5F
07/25 11:59, 5F
推
07/25 19:51, , 6F
07/25 19:51, 6F
→
07/25 19:51, , 7F
07/25 19:51, 7F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):