Um aviso - comparação entre expressões inteiras assinadas e não assinadas

Atualmente, estou trabalhando comC ++ acelerado e deparei com um problema no exercício 2-3.

Uma rápida visão geral do programa - o programa basicamente leva um nome e exibe uma saudação dentro de um quadro de asteriscos - ou seja, Olá! cercado emoldurado por * 's.

O exercício - No programa de exemplo, os autores usamconst int para determinar o preenchimento (espaços em branco) entre a saudação e os asteriscos. Eles então pedem ao leitor, como parte do exercício, que peça ao usuário informações sobre o tamanho que ele deseja que o preenchimento seja.

Tudo isso parece fácil, solicito ao usuário dois números inteiros (int), armazene-os e altere o programa para usar esses números inteiros, removendo os usados pelo autor, ao compilar, embora eu receba o seguinte aviso;

Exercise2-3.cpp: 46: warning: comparação entre expressões inteiras assinadas e não assinadas

Após algumas pesquisas, parece que o código tenta comparar um dos números inteiros acima (int) a umstring::size_type, o que é bom. Mas eu queria saber - isso significa que devo alterar um dos números inteiros paraunsigned int? É importante declarar explicitamente se meus números inteiros estão assinados ou não?

 cout << "Please enter the size of the frame between top and bottom you would like ";
 int padtopbottom;
 cin >> padtopbottom;

 cout << "Please enter size of the frame from each side you would like: ";
 unsigned int padsides; 
 cin >> padsides;

 string::size_type c = 0; // definition of c in the program
 if (r == padtopbottom + 1 && c == padsides + 1) { // where the error occurs

Acima estão os bits relevantes do código, oc é do tipostring::size_type porque não sabemos quanto tempo a saudação pode demorar - mas por que agora eu recebo esse problema, quando o código do autor não encontrou o problema ao usarconst int? Além disso - para qualquer pessoa que possa ter concluídoC ++ acelerado - isso será explicado mais adiante neste livro?

Estou no Linux Mint usando g ++ via Geany, se isso ajuda ou faz alguma diferença (como li que poderia ao determinar o questring::size_type é).

questionAnswers(5)

yourAnswerToTheQuestion