没有优先队列的dijkstra不算真的dijkstra

所以我又回来补常识了

<1>priority_queue::emplace

<7>priority_queue::top

 1 // priority_queue::emplace
 2 #include <iostream>       // std::cout
 3 #include <queue>          // std::priority_queue
 4 #include <string>         // std::string
 5
 6 int main ()
 7 {
 8   std::priority_queue<std::string> mypq;
 9
10   mypq.emplace("orange");
11   mypq.emplace("strawberry");
12   mypq.emplace("apple");
13   mypq.emplace("pear");
14
15   std::cout << "mypq contains:";
16   while (!mypq.empty())
17   {
18      std::cout << ' ' << mypq.top();
19      mypq.pop();
20   }
21   std::cout << '\n';
22
23   return 0;
24 }
25 //Ooutput:mypq contains: strawberry pear orange apple

<2>priority_queue::empty

<3>priority_queue::pop

<4>priority_queue::push

 1 // priority_queue::push/pop
 2 #include <iostream>       // std::cout
 3 #include <queue>          // std::priority_queue
 4
 5 int main ()
 6 {
 7   std::priority_queue<int> mypq;
 8
 9   mypq.push(30);
10   mypq.push(100);
11   mypq.push(25);
12   mypq.push(40);
13
14   std::cout << "Popping out elements...";
15   while (!mypq.empty())
16   {
17      std::cout << ' ' << mypq.top();
18      mypq.pop();
19   }
20   std::cout << '\n';
21
22   return 0;
23 }
24 //Output:Popping out elements... 100 40 30 25

<5>priority_queue::size

<6>priority_queue::swap

 1 // priority_queue::swap
 2 #include <iostream>       // std::cout
 3 #include <queue>          // std::priority_queue
 4
 5 int main ()
 6 {
 7   std::priority_queue<int> foo,bar;
 8   foo.push (15); foo.push(30); foo.push(10);
 9   bar.push (101); bar.push(202);
10
11   foo.swap(bar);
12
13   std::cout << "size of foo: " << foo.size() << '\n';
14   std::cout << "size of bar: " << bar.size() << '\n';
15
16   return 0;
17
18 /*Output:
19 size of foo: 2
20 size of bar: 3*/

然后还有个自定义排序来着,到时候再摸。

01-22 20:53