C++ cout.endl() clear the buffer, cout.flush() dont -
problem in ide using - clion 1.2.4 gives incorrect output inside own output window, solved.
following code gives repeating output when working vectors, bigger ~1000, like:
bubblebubble0.265596bubble0.2655960.171889bubble0.2655960.1718890.265644 shell000
if call endl after every output, seems fine:
bubble
 0
 0.015626
 0.015628
 shell
 0
 0
 0
but when try clear buffer .flush(), i'm getting same repeating output.
#include <iostream> #include <vector> #include <chrono> #include <algorithm>  using namespace std;  vector<int> type_sort(string type, vector<int>input) {     int n = input.size();      if (type == "bubble") {         for(int = 0; < n; i++)             for(int j = 0; j < n - 1; j++)                 if(input[j] > input[j+1]) {                     swap(input[j], input[j+1]);                 }     }     else if (type == "shell") {         int gap, i, j, temp;         (gap = n/2; gap > 0; gap /= 2)             (i = gap; < n; i++)                 (j = - gap; j >= 0 && input[j] > input[j + gap]; j -= gap) {                     temp = input[j];                     input[j] = input[j + gap];                     input[j + gap] = temp;                 }     }     return input; }  void print_vector(vector<int> input) {     for(int = 0; < input.size(); i+= input.size() / 5) {         cout << input[i] << ",..";     }     cout << endl; }  vector<int> random_vector(int size) {     vector<int> output;     for(int = 0; < size; i++) {         output.push_back(rand() % 20 + 1);     }     return output; }  int main() {     vector<int> numbers = random_vector(5000),                 sorted_numbers,                 reversed_numbers;     sorted_numbers = reversed_numbers = numbers;      sort(sorted_numbers.begin(), sorted_numbers.end());     sort(reversed_numbers.begin(), reversed_numbers.end(), greater<int>());      vector<vector<int>> sort_types = {numbers, sorted_numbers, reversed_numbers};     vector<string> sort_names = {"bubble", "shell"};      chrono::time_point<chrono::system_clock> start_time, end_time;      (int = 0; < 2; i++) {         cout << sort_names[i];         (int j = 0; j < 3; j++) {             start_time = chrono::system_clock::now();             type_sort(sort_names[i], sort_types[j]);             end_time = chrono::system_clock::now();              chrono::duration<double> elapsed_seconds = end_time - start_time;             cout << elapsed_seconds.count();         }         cout << endl;     }     return 0; } 
the problem in ide using - clion 1.2.4 gives incorrect output.
however when ran .exe directly inside explorer (cmd) error has gone.


Comments
Post a Comment