If you are using Windows, and you don't know either editor, I would go with Vim because it's easier to learn and it works better in Windows. But if you want to get up to speed quickly, I would go with VS Code. Both Vim and Emacs take a while to learn enough to make it worth using. VS Code doesn't take as long to get to that point.
Old school C/C++ dev is done with ctags, grep, and compiler output. Emacs and Vim both integrate with this stuff just fine. They are a tie here. Maybe a slight edge to Emacs with citre-mode; a really fancy ctags integration that brings the bling.
Emacs can integrate with GDB for debugging. I'm not familiar with how vim integrates with debuggers so can't compare.
New school is to use lsp servers. Again both Emacs and Vim integrate. I've had 0 performance issues Emacs/eglot but I heard some people say Vim/NeoVim has better lsp performance. So maybe a slight edge to Vim there.
Personally I prefer Emacs due to how it treats the tab key as "go-to-indentation" instead of a literal tab/spaces. YYMV.
I use vim for C++ coding, however it is a bit difficult to set up to make it productive. I use YouCompleteMe [0] for autocompletion, Vimspector [1] with the C++ plugin for debugging, ALE [2] for linting, along with a few other general plugins (such as NerdTREE for file view).
Just haven't tested it out yet, but am interested in testing out some different plugins and combinations in the future. Also neovim wasn't available in one of the platforms I use, so have been sticking with vim.