c++11的新特性

好奇心来源于下面的一段代码, 一个是unordered_map, 这是c++11新加的container. 另外还有unordered_set, unordered_multimap, unordered_multiset. 

另外在for循环中, 可以使用下列形式:

1 for (auto &element : container) {

2       std::cout << element << std::endl;

3 }

还有一点就是变量的初始化, 请注意: int maxlen{1}; 这也是c++11的新特性...

使g++支持c++11可以加编译选项 -std=c++0x    这里0x就是11的draft(暂时不懂什么意思这句话2333)

 1 #include <unordered_map>

 2 #include <algorithm>

 3 class Solution {

 4 public:

 5     int longestConsecutive(vector<int> &num) {

 6         if (num.size() == 0)

 7             return 0;

 8         unordered_map<int, int> uii;

 9         int maxlen{1};

10         for (auto &val: num) {

11             if (uii[val] != 0) {

12                 continue;

13             }

14             uii[val] = 1;

15             int leftbound{uii[val-1]}, rightbound{uii[val+1]};

16             uii[val-leftbound] = uii[val+rightbound] = 1+leftbound+rightbound;

17             maxlen = max(maxlen, 1+leftbound+rightbound);

18         }

19         return maxlen;

20     }

21 };

 

你可能感兴趣的:(C++)