Como concatenar um valor inteiro em uma string em C++?

Eu estou começando a estudar C++, e gostaria de saber como faço para concatenar um valor inteiro em uma string?
segue como exemplo a simples soma de dois números:

#include <iostream>
#include "string.h"
using namespace std;


int main()
{
    int num1, num2, resp;

    cout << " Digite o primeiro número: " << endl;
    cin >> num1;

    cout << " Digite o segundo número: " << endl;
    cin >> num2;

    resp = num1+num2;

    cout << " A soma dos dois números é = " << resp << endl;

        if (num1 > num2) {
            cout << " O primeiro número é maior que o segundo: "<< num1 << endl;

        }else{
            cout << " O segundo número é maior que o primeiro: "<< num2 << endl;
        }

    return 0;
}

saída:
Digite o primeiro número:
20
Digite o segundo número:
30
A soma dos dois números é = 50
O segundo número é maior que o primeiro: 30

gostaria que a saída fosse assim:
O número 30 é maior que o número 20!

Em java bastaria um simples: system.out.println (“O número” +num2+ “é maior que o número”+num1);
rs
`

No caso do cout, você também pode fazer:

cout << "O número " << num2 << "é maior do que o número" << num1 << endl; 

Isso não é exatamente uma concatenação, mas uma forma conveniente de enviar cada variável para o cout separadamente.

Se quiser concatenar “de verdade” e se você está usando mesmo C++ (e não C), então, não use o cabeçalho string.h. Esse cabeçalho é do C e trabalha com variáveis do tipo char* ou char[], e não com o tipo string, definido no C++.

No lugar, você vai usar o

#include <string>

Que te dá a classe string, para manipulação de texto. A classe também está no namespace std.

Outra possibilidade é trabalhar com o:

#include <stringstream>

Que mais ou menos o equivalente ao StringBuilder do Java.

stringstream ss;
ss << "O número " << num2 << "é maior do que o número" << num1;
cout << ss.str() << endl;

Se o valor já estiver numa variável do tipo string, a concatenação também deve funcionar:

string texto;
texto = string("O número") + num2 + "é maior que o número" + num1;
cout << texto << endl;

Outra coisa. Não há motivos para você declarar todas as suas variáveis no começo da função. Assim como em Java, fica mais elegante e com menos chance de erros declara-las no primeiro uso:

#include <iostream>

int main()
{
    cout << " Digite o primeiro número: " << endl;
    int num1;
    cin >> num1;

    cout << " Digite o segundo número: " << endl;
    int num2;
    cin >> num2;

    int resp = num1+num2;
    cout << "A soma dos dois números é " << resp << endl;
    if (num1 > num2) 
    {
         cout << "O primeiro número (" << num1 << ") é maior do que o segundo (" << num2 << ")" << endl;
    } 
    else 
    {
        cout << "O segundo número (" << num2 << ") é maior do que o primeiro (" << num1 << ")" << endl;
    }
    return 0;
}

Ai Vini,
Obrigado, pela ajuda e pelas dicas.