Each transaction has inputs and outputs, where vin is the set of inputs and vout is the set of outputs in the raw transaction description. Each transaction input spends a previous transaction output. Some transaction outputs can be spent, while others contain only data (look for OP_RETURN) and cannot be spent. Generally speaking you do not need to worry about this unless you are buliding transactions at a low level.