Re: [問題] vector轉array..

看板C_and_CPP作者 (CA)時間16年前 (2009/11/28 19:34), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
如果你只是很單純想要把 vector 傳入 C function ※ 引述《snoopy0907 (我是男的喔~^0^")》之銘言: : #include<iostream> : #include<vector> : using std::cin; : using std::cout; : using std::endl; : using std::vector; : bool main( int argc , char *argv[] ) : { : vector<int> v; : size_t i=0; //計數 : signed int g; //儲存輸入 : while(cin >> g) : { : v.push_back(g); : } /* 這段完全不需要 : //用兩個指標相減得vector長度 : vector<int>::iterator p = v.begin(); : vector<int>::iterator q = v.end(); : vector<int>::difference_type x = q - p; : //型別轉換 difference_type轉size_t : for(vector<int>::difference_type a = 0 ; a != x ; ++a ) : { : i=i+1; : } */ : signed int *k = new signed int[i]; //宣告動態陣列 const int * k = &v[0]; // vector 保證元素連續性 /* 不用複製了 : for( p , k ; p != q ; ++p , ++k ) //複製 : { : *k = *p; : } */ : for( signed int j=0 ; j != i ; ++j ) //列印 : { : cout << *(k+j); : } for( size_t i = 0; i < v.size(); ++i ) { cout << k[i]; } /* : delete [] k; */ : return true; : } -- 自High筆記(半荒廢) http://legnaleurc.blogspot.com/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.205.248.119 ※ 編輯: legnaleurc 來自: 123.205.248.119 (11/28 19:35)

11/29 11:15, , 1F
謝謝~好簡潔俐落的寫法:)
11/29 11:15, 1F
文章代碼(AID): #1B4GgwQQ (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1B4GgwQQ (C_and_CPP)