По какой-то причине, когда я определяю переменную как «uint» вместо «unsigned int» в моей программе, это приводит к ошибкам.Это кажется странным, потому что uint имеет typedef'd как:
typedef unsigned int uint;
... поэтому я думаю, что я мог бы использовать эти два взаимозаменяемо.Чтобы быть более точным, я присваиваю результат функции, которая возвращает «unsigned int», в переменную uint, а затем использую эту uint в вызове изменения размера вектора ... и в этот момент происходит ошибка.То есть мой код выглядит примерно так:
unsigned int getUInt()
{
return 3;
}
int main(void) {
vector<vector<float> > vectVect(100000);
for(uint i = 0; i < vectVect.size(); ++i)
{
vector<float>& myVect = vectVect[i];
uint myUnsignedInt = getUInt();
myVect.resize(myUnsignedInt);
}
cout << "finished" << endl;
}
... и строка, в которой он ошибается, - это строка myVect.resize.
Очевидно, у меня уже есть решение, но яЯ хотел бы понять, ПОЧЕМУ это происходит, потому что я довольно озадачен.У кого-нибудь есть идеи?
PS - Если кто-то думает, что это может иметь значение, я использую gcc v4.1.2 на fedora 15 ... и включаемый файл, который определяет uint, является / usr / include / sys /types.h.