(假設a1, a2為兩個array)
- 比較兩個array是否相同
- 不能直接a1==a2, a1!=a2
- 應該要用for/while loop掃描一次,看看是否全部相同
- 複製array
- 不能直接a1=a2
- 應該要用for/while loop掃描一次,一個一個element複製
- array大小
- 沒有快速的方法
- 應該要用sizeof(a1)/sizeof(a1[0])
因為array的名字只是array起點的記憶體位置,所以往往不能直覺的把他當作普通變數運算。
C++中有一個新東西要作vector,是一種template,定義在<vector>標頭檔裡面。宣告方式:
vector<type> name(size);example:
vector<int> v1(10);讀取裡面elements的方式和array相同,使用中括號[ ],此外,上述的三件事情他可以簡易的完成:
(假設v1, v2為vector)
- v1==v2, v1!=v2
- v1 = v2
- v1.size(), v2.size()
Here's a simple example:
#include <iostream>
#include <vector>
using namespace std;
int main(){
//variables
int i;
//vector definition
vector<int> v1(10);
vector<int> v2(10);
//input
for(i=0 ; i<v1.size() ; i++){
cin >> v1[i];
}
//output
for(i=0 ; i<v1.size() ; i++){
cout << v1[i] << "\t";
}
cout << endl;
//copy
v2 = v1; // copy v1 to v2
//output v2
for(i=0 ; i<v1.size() ; i++){
cout << v1[i] << "\t";
}
cout << endl;
//compare
if(v1 == v2) cout << "same." << endl;
else cout << "different." << endl;
//do some change and compare again
v2[0] = -1;
if(v1 == v2) cout << "same." << endl;
else cout << "different." << endl;
return 0;
}
No comments:
Post a Comment