Planes, lines, and cylinders widely exist in man-made environments. This letter introduces a LiDAR simultaneous localization and mapping (SLAM) system using those three types of landmarks. Our algorithm has three components including local mapping, global mapping, and localization. The local and global mapping jointly adjust planes, lines, and cylinders with LiDAR poses to minimize the point-to-model cost, which is referred to as plane-line-cylinder adjustment (PLCA). We prove that, with some preprocessing, PLCA is independent of the number of points captured from the three types of landmarks, which makes efficiently solving a large-scale PLCA problem feasible. The localization component conducts real-time pose estimation through registering local planes, lines, and cylinders to the global ones, which is referred to as plane-line-cylinder registration (PLCR). We present an efficient solution for PLCR. The detection and data association may introduce errors. We correct these errors through checking the cost in the back-end. It is difficult for the registration-based algorithm, such as LOAM and ICP, to correct these errors, as they do not maintain the data association. Experimental results show that out algorithm outperforms the state-of-the-art LiDAR SLAM algorithms and achieves real-time performance.