1. 程式人生 > >c++基礎(三):陣列自增處理及字串轉int,double

c++基礎(三):陣列自增處理及字串轉int,double

今天整理了一些陣列相關的程式碼,陣列是固定長度的,所以當長度不確定時,需要用一些其它方法來達到目的;像java中有list,set等可以不用指定長度,而c++中也有自增的陣列vector...

vector的使用

std::vector<double> vect;
vect.push_back(10.0f);

vector轉陣列

這個轉換可以算是很簡單
// 將vector轉為array
int *arr = new int[sizeof(vect)];
if (!vect.empty())
{
memcpy(arr, &vect[0], vect.size() * sizeof(double));
}
需要注意的是,陣列是new出來的,在使用完後記得釋放記憶體
// 釋放陣列記憶體
if (arr != NULL)
{
delete[] arr ;
arr = NULL;
}

atoi與atof處理字串轉整型和double型

有時候我們需要用c++處理一些指數,如5.0000000e+01,要轉成int型,於是很自然的想到了atoi

int i = atoi("5.0000000e+01");

但是很不幸,我轉出來是5(不知道是不是我自己的原因,如果是,請指出)
於是用了atof

double i = atof("5.0000000e+01");

轉出來是50,沒有問題,如果想變成int,直接強轉就可以了

原文:簡書ThinkinLiu 部落格: IT老五

ps: 還碰到很多在java很容易做到的問題,c++需要一堆程式碼處理的基礎問題,慢慢整理中...

c++基礎(一):string轉wstring及檔案拷貝
c++基礎(二):字串替換及檔案路徑擷取檔名