I. Introduction

II. Overview of Vehicular Networks

III. Resource Allocation in DSRC Networks

IV. Resource Allocation in C-V2X

V. Resource Allocation for Heterogeneous Vehicular Networks

VI. Machine Learning Based Resource Allocation for Vehicular Communications

VII. Future Research Directions

VIII. Conclusions