C program used to swap the values about vector Please fix th
C++ program used to swap the values about vector. Please fix the problem. Please highlight the code which you rewrite. If I don\'t want use c++ 11 library how to write code. I want use g++ filename.cpp -o filename to check the code. Then use ./filename run the code. Please show me the new code.
This the error message.
lab8.cpp: In function ‘void printVec(const std::vector<T>&)’:
 lab8.cpp:15:15: error: ‘iter’ does not name a type
 for ( auto iter = vec.begin();iter != vec.end() ; iter++ ){
 ^
 lab8.cpp:15:34: error: expected ‘;’ before ‘iter’
 for ( auto iter = vec.begin();iter != vec.end() ; iter++ ){
#include <iostream>
 #include <vector>
 #include <string>
 #include <stdlib.h>
 #include <time.h>
using namespace std;
//Function that prints vector elements
 template<class T>
 void printVec( const vector<T> & vec){
 //Initializing iterator
    typename vector<T>::iterator iter ;
   for ( auto iter = vec.gegin();iter != vec.end() ; iter++ ){
   
         cout << *iter << endl;
    }
 }
//Function that shuffles vector elements
 template<class B>
 void shuffleVec(vector<B> & vec)
 {
   int len = vec.size();
    int i, rPos;
    for (i=len-1; i>=0; i--){
        rPos = rand()%len;
        swap(vec.at(i), vec.at(rPos));
    }
 }
//Main function
 int main()
 {
    //Initializing random function
    srand (time(NULL));
cout<<\"\ \ Testing with double values: \ \";
   //GenericVector object of type double
    vector<double> doubleVec;
   //Inserting values into vector
    doubleVec.push_back(23.64);
    doubleVec.push_back(18.41);
    doubleVec.push_back(14.33);
    doubleVec.push_back(85.18);
    doubleVec.push_back(10.90);
   //Printing vector elements
    printVec(doubleVec);
   
    cout<<\"\ \  Testing with string values: \ \";
   
    //GenericVector object of type string
    vector<string> stringVec;
   
    //Insert three double values into vector
    stringVec.push_back(\"Anil\");
    stringVec.push_back(\"Manu\");
    stringVec.push_back(\"Varnitha\");
    stringVec.push_back(\"Sanjana\");
    stringVec.push_back(\"Tanvi\");
   //Printing vector elements
    printVec(stringVec);
cout << \"\ \ String vector - After shuffle 1: \ \";
   //Shuffling elements
    shuffleVec(stringVec);
   //Printing vector elements
    printVec(stringVec);
cout << \"\ \ String vector - After shuffle 2: \ \";
   //Shuffling elements
    shuffleVec(stringVec);
   
    //Printing vector elements
    printVec(stringVec);
   cout << \"\ \";
 return 0;
 }
Solution
You are getting error due to different c++ compiler version
auto support only c++11 or more verion
if you are using codeblock then follow step to setup c++11
step 1) open codeblock
step 2) click on setting menu bar.
step 3) clcik on compiler
step 4) select c++ 11 ISO language standard
step) click on OK.
----------------------
#include <iostream>
 #include <vector>
 #include <string>
 #include <stdlib.h>
 #include <time.h>
 using namespace std;
 //Function that prints vector elements
 template<class T>
 void printVec( const vector<T> & vec){
 //Initializing iterator
typename std::vector<T>::iterator iter;
for ( auto iter = vec.begin(); iter != vec.end() ; iter++ ){
cout << *iter << endl;
 }
 }
 //Function that shuffles vector elements
 template<class B>
 void shuffleVec(vector<B> & vec)
 {
 int len = vec.size();
 int i, rPos;
 for (i=len-1; i>=0; i--){
 rPos = rand()%len;
 swap(vec.at(i), vec.at(rPos));
 }
 }
 //Main function
 int main()
 {
 //Initializing random function
 srand (time(NULL));
 cout<<\"\ \  Testing with double values: \ \";
 //GenericVector object of type double
 vector<double> doubleVec;
 //Inserting values into vector
 doubleVec.push_back(23.64);
 doubleVec.push_back(18.41);
 doubleVec.push_back(14.33);
 doubleVec.push_back(85.18);
 doubleVec.push_back(10.90);
 //Printing vector elements
 printVec(doubleVec);
cout<<\"\ \ Testing with string values: \ \";
//GenericVector object of type string
 vector<string> stringVec;
//Insert three double values into vector
 stringVec.push_back(\"Anil\");
 stringVec.push_back(\"Manu\");
 stringVec.push_back(\"Varnitha\");
 stringVec.push_back(\"Sanjana\");
 stringVec.push_back(\"Tanvi\");
 //Printing vector elements
 printVec(stringVec);
 cout << \"\ \  String vector - After shuffle 1: \ \";
 //Shuffling elements
 shuffleVec(stringVec);
 //Printing vector elements
 printVec(stringVec);
 cout << \"\ \  String vector - After shuffle 2: \ \";
 //Shuffling elements
 shuffleVec(stringVec);
//Printing vector elements
 printVec(stringVec);
 cout << \"\ \";
 return 0;
 }
====================================================
output sample:-
 Testing with double values:
 23.64
 18.41
 14.33
 85.18
 10.9
 Testing with string values:
 Anil
 Manu
 Varnitha
 Sanjana
 Tanvi
 String vector - After shuffle 1:
 Sanjana
 Tanvi
 Manu
 Anil
 Varnitha
 String vector - After shuffle 2:
 Anil
 Manu
 Tanvi
 Varnitha
 Sanjana
---------------------------------------------------------------------------------------------
If you have any query, please feel free to ask.
Thanks a lot




