伊莉討論區
標題:
練習vector遇到的問題
[打印本頁]
作者:
weirdococo
時間:
2017-4-22 09:06 PM
標題:
練習vector遇到的問題
最近在練習使用vector,
然後想要把vector當作一個大數字來用,像是{ 0x10, 0x00, 0x00, 0x00 }就是數字1000_0000,
在製作他的operator的時候遇到的不少問題,像是比大小,用perl來寫大概長這樣:
my @listOne = (^10).roll(5);
my @listTwo = (^10).roll(5);
sub testTwoEquSizeArray( @one, @two ) {
for ( @one Z- @two ) {
if ($_ > 0) {
return "one is bigger";
}
if ($_ < 0) {
return "two is bigger";
}
}
return "the same";
}
say &testTwoEquSizeArray(@listOne, @listTwo);
複製代碼
問題是在C語言裡面沒有ZIP functon、map、filter、reduce這類的東西,有沒有替代方法??
作者:
ren1244
時間:
2017-4-23 10:26 AM
不知道您是否有C++的書?
感覺一些基本的東西好像需要看一下
也許看過之後,會比較清楚
因為雖然程式的邏輯相近,但是也是有一些特性上的不同
(例如迴圈)
#include <vector>
#include <iostream>
int compare(const std::vector<int> &a,const std::vector<int> &b)
{
int i;
if(a.size()!=b.size())
return a.size()-b.size();
for(i=a.size()-1;i>=0 && a[i]==b[i];--i);
return i>=0?a[i]-b[i]:0;
}
int main()
{
std::vector<int> one,two;
//init one and two here...
int cmp=compare(one,two);
std::cout<<(cmp!=0?(cmp>0?"one is bigger":"two is bigger"):"the same");
return 0;
}
複製代碼
作者:
weirdococo
時間:
2017-4-23 11:58 AM
本帖最後由 weirdococo 於 2017-4-23 01:19 PM 編輯
ren1244 發表於 2017-4-23 10:26 AM
不知道您是否有C++的書?
感覺一些基本的東西好像需要看一下
也許看過之後,會比較清楚
我竟然忘了基本的for迴圈,可能是我對基本的for迴圈太不熟悉,常用的語言都是Range-based for,所以腦袋轉不過來(其實外在寫C++也適用C11的Range-based for),沒有錯,基礎不好,所以我馬上去網路訂了一本 c++ primer plus,其實最主為的是我想程式的邏輯大都是ruby或是perl,然後再轉換成C++,不知道怎麼轉的去stack overflow查,這樣說學習不如說是使用,也不會了解C語言的精隨,是該好好的學一下C語言了!
作者:
o_g349
時間:
2017-9-14 01:57 PM
提示:
作者被禁止或刪除 內容自動屏蔽
歡迎光臨 伊莉討論區 (http://www02.eyny.com/)
Powered by Discuz!