C++primer 習題第四章(1)
阿新 • • 發佈:2018-11-16
4.7編寫程式碼實現一個數組賦值給另外一個數組,然後將這段程式碼改用vector實現。考慮如何將一個vector 賦值給另一個vector。
int main() { int a[3] = { 1,2,3 }; int b[3]; cout << "array :" << endl; for (int i = 0; i < 3; i++) { b[i] = a[i]; cout << b[i] << endl; } vector<int> ivec1 = { 1, 2, 3 }; cout << "ivec1:" << endl; for (vector<int>::iterator iter = ivec1.begin(); iter != ivec1.end(); ++iter) { cout <<*iter<< endl; } vector<int>ivec2(ivec1); vector<int> vec; vec = ivec2; cout << "ivec2:" << endl; for (vector<int>::iterator iter = ivec2.begin(); iter != ivec2.end(); ++iter) { cout << *iter << endl; } cout << "vec:" << endl; for (vector<int>::iterator iter = vec.begin(); iter != vec.end(); ++iter) { cout << *iter << endl; } return 0; }
4.8 編寫程式判斷兩個陣列是否相等,然後編寫一段類似的程式比較兩個vector。
int main() { int a[3] = { 1, 2, 3 }; int b[3] = { 1, 2, 3 }; cout << "use array:" << endl; if (sizeof(a) / sizeof(int) == sizeof(b) / sizeof(int)) { size_t i = 0; for (i; i < sizeof(a) / sizeof(int); ++i) { if (a[i] != b[i]) { cout << "兩陣列不相等" << endl; break; } } if (sizeof(a) / sizeof(int) == i) { cout << "兩陣列相等" << endl; } } cout << "use vector :" << endl; vector<int> vec = { 1, 2, 3, 4 }; vector<int> vec2 = { 1, 2, 3, 4 }; if (vec == vec2){ cout << "兩陣列相等" << endl; } else cout << "兩陣列不相等" << endl; return 0; }
4.9 編寫程式定義一個有10個int型元素的陣列,並以其在陣列中的位置作為各元素的初值。
int main() { int a[10]; for (int i = 0; i < 10; ++i){ a[i] = i; cout << a[i] << endl; } cout << "use vector" << endl; vector<int> vec; for (int i = 0; i < 10; ++i){ vec.push_back(i); } for (vector<int>::iterator iter = vec.begin(); iter != vec.end(); ++iter){ cout << *iter << endl; } return 0; }
4.14 編寫程式碼修改指標的值,然後在編寫程式碼修改指標所指物件的值。
int main()
{
int a (1),c(2);
int *b = &a;
b = &c;
*b = 6;
return 0;
}
4.16 下列程式實現什麼功能?
int main()
{
int i = 42, j = 1024;
int *p1 = &i, *p2 = &j;
*p2 = *p1 * *p2;
*p1 *= *p1;
cout << *p1 << " "<<*p2 << endl;
return 0;
}
4.18 編寫一個程式,使用指標把一個int型陣列的所有元素設定成0。
int main()
{
int a[3] = { 1, 2, 3 };
for (int *p = a; p != a + 3; ++p){
*p = 0;
}
for (int i = 0; i < 3; ++i){
cout << a[i] << endl;
}
}
4.25 編寫程式比較兩個string字串,然後編寫程式比較兩個C風格字串。
int main()
{
cout << "C++ style!" << endl;
string str1 = "hello world";
string str2 = "good well";
if (str1 == str2){
cout << "兩字串相等" << endl;
}
else
cout << "兩字串不相等" << endl;
cout << "C style!" << endl;
char ch1[] = "hello world";
char ch2[] = "good well";
if (!strcmp(ch1, ch2)){
cout << "兩字串相等" << endl;
}
else
cout << "兩字串不相等" << endl;
}