练习3.6
string s = "1234567" ;
for ( auto & c : s) {
c = 'X' ;
}
cout << s << endl;
练习3.7
使用auto c,此时c是一个局部变量,对c的修改并不会反映到s中
练习3.11
const string s = "Keep out!" ;
for ( auto & c : s) { }
练习3.13
vector< int > v1;
vector< int > v2 ( 10 ) ;
vector< int > v3 ( 10 , 42 ) ;
vector< int > v4{ 10 } ;
vector< int > v5{ 10 , 42 } ;
vector< string> v6{ 10 } ;
vector< string> v7{ 10 , "hi" } ;
练习3.19
三种方式实现定义vector 10个元素,每个元素都为42
vector< int > v1 ( 10 , 42 ) ;
vector< int > v2{ 42 , 42 , 42 , 42 , 42 , 42 , 42 , 42 , 42 , 42 } ;
vector< int > v3;
for ( int i = 0 ; i < 10 ; ++ i) {
v3. push_back ( 42 ) ;
}
练习3.20
vector< int > v{ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 } ;
for ( decltype ( v. size ( ) ) i = 0 ; i < v. size ( ) - 1 ; ++ i) {
cout << v[ i] + v[ i+ 1 ] << " " ;
}
cout << endl << "-----" << endl;
for ( decltype ( v. size ( ) ) i = 0 ; i < v. size ( ) / 2 ; ++ i) {
cout << v[ i] + v[ v. size ( ) - 1 - i] << " " ;
}
cout << endl;
3 5 7 9 11 13 15 17
-----
10 10 10 10
练习3.27
const char s[ ] = "hello" ;
cout << sizeof ( s) << endl;
const char ca[ ] = { 'h' , 'e' , 'l' , 'l' , 'o' } ;
cout << sizeof ( ca) << endl;
const char * cp = ca;
while ( * cp) {
cout << * cp << endl;
++ cp;
}
练习3.43
int main ( ) {
int ia[ 3 ] [ 4 ] = { 0 } ;
int size = sizeof ( ia) / sizeof ( int ) ;
for ( int i = 0 ; i < size; ++ i) {
* ( * ia + i) = i;
}
for ( int ( & r) [ 4 ] : ia) {
for ( int num : r) {
cout << num << " " ;
}
}
cout << endl;
for ( int i = 0 ; i < 3 ; ++ i) {
for ( int j = 0 ; j < 4 ; ++ j) {
cout << ia[ i] [ j] << " " ;
}
}
cout << endl;
for ( int ( * p) [ 4 ] = ia; p != ia+ 3 ; ++ p) {
for ( int * q = * p; q != * p+ 4 ; ++ q) {
cout << * q << " " ;
}
}
cout << endl;
return 0 ;
}
练习3.45
int main ( ) {
int ia[ 3 ] [ 4 ] = { 0 } ;
int size = sizeof ( ia) / sizeof ( int ) ;
for ( int i = 0 ; i < size; ++ i) {
* ( * ia + i) = i;
}
for ( auto & r : ia) {
for ( int num : r) {
cout << num << " " ;
}
}
cout << endl;
for ( auto p = ia; p != ia+ 3 ; ++ p) {
for ( auto q = * p; q != * p+ 4 ; ++ q) {
cout << * q << " " ;
}
}
cout << endl;
}