Да, при условии, что ix является допустимым индексом, скорее всего: у вас есть вектор int, а индекс - size_type.Конечно, вы можете нарочно сохранить -1, чтобы иногда показывать недопустимый индекс, поэтому было бы целесообразно преобразовать неподписанное в подписанное, но тогда я бы предложил использовать static_cast.
Делать то, что вы делаете (устанавливая каждое значениев векторе к его индексу) есть способ создания индексов других коллекций.Затем вы переставляете векторную сортировку на основе предиката другой коллекции.
При условии, что вы никогда не переполнитесь (очень маловероятно, если ваша система 32-битная или более), ваше преобразование должно работать.