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