#include #include using namespace std ; void printme(vector X) { // by value! unsigned int i ; for (i=0 ; i < X.size() ; i++) { printf ("%d ", X[i]) ; X[i] = 0 ; } printf("\n") ; } void bubblesort(vector& B) { // by reference unsigned int i, j ; int temp ; for (i = 1 ; i <= B.size() - 1 ; i++) { for (j = 0 ; j <= B.size() - i - 1 ; j++) { if ( B[j] > B[j+1] ) { temp = B[j] ; B[j] = B[j+1] ; B[j+1] = temp ; } } } } int main () { unsigned int i, n ; int x ; printf("Size of vector? ") ; scanf("%d", &n) ; vector A(n) ; // initialize vector // Populate vector for (i = 0 ; i < A.size() ; i++) { printf ("A[%d] = ? ", i ) ; scanf ("%d", &x) ; A[i] = x ; } // Check parameter passing by value printf("Original vector: ") ; printme(A) ; printf("vector again: ") ; printme(A) ; // Check "deep" copy vector V ; V = A ; V[0] = 999 ; printf("After munging V[0]: ") ; printme(A) ; // Check parameter passing by reference bubblesort(A) ; printf("Sorted vector: ") ; printme(A) ; // Check expanding vector printf("\n\nHow many more items? ") ; scanf("%d", &n) ; unsigned int orig_size = A.size() ; for (i = 0 ; i < n ; i++) { printf ("A[%d] = ? ", i + orig_size) ; scanf ("%d", &x) ; A.push_back(x) ; // add item to end } printf("Expanded vector: ") ; printme(A) ; bubblesort(A) ; printf("Sorted expanded vector: ") ; printme(A) ; // Check vector of other type vector B(A.size()) ; printf("Floating point vector: " ) ; for (i = 0 ; i < B.size() ; i++) { B[i] = A[i] / (1.0 * A.size()) ; printf("%f ", B[i]) ; } printf("\n") ; }