What you call Unicode number is typically called a code point. If you want to work with C++ and Unicode strings, ICU offers a icu::UnicodeString class. You can find the documentation here.
To create a UnicodeString holding a single character, you can use the constructor that takes a code point in a UChar32:
icu::UnicodeString::UnicodeString(UChar32 ch)
Then you can call the toUTF8String method to convert the string to UTF-8.
Example program:
#include <iostream>
#include <string>
#include <unicode/unistr.h>
int main() {
icu::UnicodeString uni_str((UChar32)1120);
std::string str;
uni_str.toUTF8String(str);
std::cout << str << std::endl;
return 0;
}
On a Linux system like Debian, you can compile this program with:
g++ so.cc -o so -licuuc
If your terminal supports UTF-8, this will print an omega character.