diff --git "a/\347\256\227\346\263\225\346\200\235\347\273\264\347\263\273\345\210\227/\347\203\247\351\245\274\346\216\222\345\272\217.md" "b/\347\256\227\346\263\225\346\200\235\347\273\264\347\263\273\345\210\227/\347\203\247\351\245\274\346\216\222\345\272\217.md"
index 513cbdca8c165141fc2532c5b9b07dc8857b55ca..5b9bf5d35d3e8ff9d5c901aad38e123e977e2daf 100644
--- "a/\347\256\227\346\263\225\346\200\235\347\273\264\347\263\273\345\210\227/\347\203\247\351\245\274\346\216\222\345\272\217.md"
+++ "b/\347\256\227\346\263\225\346\200\235\347\273\264\347\263\273\345\210\227/\347\203\247\351\245\274\346\216\222\345\272\217.md"
@@ -149,4 +149,47 @@ void reverse(int[] arr, int i, int j) {
-======其他语言代码======
\ No newline at end of file
+======其他语言代码======
+
+[fengshuu](https://github.com/fengshuu) 提供 C++ 解法代码:
+```cpp
+class Solution {
+public:
+ vector pancakeSort(vector& arr) {
+ sort(arr, arr.size());
+ return res;
+ }
+
+private:
+ // 记录反转操作序列
+ vector res;
+ void sort(vector& cakes, int n){
+ // base case
+ if(n == 1) return;
+
+ // 寻找最大饼的索引
+ int maxCakeIndex = max_element(cakes.begin(), cakes.begin() + n) - cakes.begin();
+
+ // 下面进行把最大的饼放到最后的两次翻转
+ // 如果最后一个饼就是最大的, 就不需要翻转, 直接进行下次递归
+ if (maxCakeIndex == n-1){
+ sort(cakes, n - 1);
+ return;
+ }
+
+ // 第一次翻转, 将最大饼翻到最上面
+ // 如果第一个饼本来就是最大的, 就不需要第一次翻转.
+ if (maxCakeIndex != 0) {
+ reverse(cakes.begin(), cakes.begin() + maxCakeIndex + 1);
+ res.push_back(maxCakeIndex + 1);
+ }
+
+ // 第二次翻转,将最大饼翻到最下面
+ reverse(cakes.begin(), cakes.begin() + n);
+ res.push_back(n);
+
+ // 递归调用
+ sort(cakes, n - 1);
+ }
+};
+```
\ No newline at end of file