Giter VIP home page Giter VIP logo

cpptqdm's Introduction

cpptqdm

Python tqdm is nice. Need something similar for C++. That's this.

Simple usage

#include "tqdm.h"

tqdm bar;
for(int i = 0; i < N; i++) {
    bar.progress(i, N);
    // stuff
}
bar.finish();

Looks like

 █████████████████▍                  | 46.2%  [4200000 | 103.66 kHz | 35s<47s]

See it live

g++ test.cpp -std=c++11 && ./a.out

example

FAQ

Won't this slow down my loops?

If your loops are faster than ~200MHz, then maybe!

Themes?

You bet. set_theme_basic(), set_theme_line(), set_theme_circles().

For fun, what if I wanted to use this in python?

If you have ROOT, you can do the following. Note that due to the fact it uses ROOT to call C++ code in Python, loops faster than 1kHz start to get slowed down by the overhead.

import time
import ROOT as r

r.gROOT.ProcessLine(".L tqdm.h")

bar = r.tqdm()

N = 10000
for i in range(N):
    bar.progress(i,N)
    time.sleep(0.001)

cpptqdm's People

Contributors

aminnj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

cpptqdm's Issues

Add license

I'd like to take a dependency on this project, but there is no indication of the associated license. Please consider adding one (even if just a note at the bottom of the README). Thanks!

There is an extra '\n' in the terminal

Hi,

Thanks for your useful work.
One of the things I'm having trouble with is a new line after the progress bar, like this:

▏ ▏ 0.5% [500000/100000000 | 49.3 MHz
▍ ▏ 1.0% [1000000/100000000 | 70.2 MHz
▌ ▏ 1.5% [1500000/100000000 | 89.6 MHz
▊ ▏ 2.0% [2000000/100000000 | 102.1 MHz
█ ▏ 2.5% [2500000/100000000 | 117.6 MHz
█▏ ▏ 3.0% [3000000/100000000 | 131.4 MHz
█▍ ▏ 3.5% [3500000/100000000 | 143.9 MHz

I tested on Ubuntu18.04 and g++ 8.4.0, can you give any advice to fixed it? Thank you!

finish message

print a message when finished
void finish(std::string finishMessage = "") { progress(total_, total_); printf("%s\n", finishMessage.c_str()); fflush(stdout); }

May need `bar.finish()` when finish

You may need to mention it in the README. Without bar.finish(), the progress bar just disappears in the end. You end up without knowing the speed of these iterations. (I found tqdm useful as a benchmark)

How To Use It In Microsoft Windows?

I tried to compile it by GCC 8.2, but the binary file cannot be executed correctly
My Windows Version is NT 10.0, 64bit, the complier command is following:
> g++ --std=c++11 -o debug.exe test.cpp
Looking forward to your reply! Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.