1

(12 відповідей, залишених у Бази даних)

VTrim написав:

Спробуйте просто localhost написати (без :8080)

Пробовала и пользователя пересоздавала. ничего не помогает,ерунда какая-то

2

(12 відповідей, залишених у Бази даних)

VTrim написав:

1. Ок, перший раз коли я сказав про константи, ви проігнорували це, а помилка виявилась саме в тому рядку.
2. Ви вкурсі, що для того щоб підключитись до БД, треба ввести правильні дані?7
3. Ви знаєте що таке константи?

У файлі config знаходиться такий код

<?php
define("HOST",`localhost:8080`);
define("USER",`Dina`);
define("PASSWORD",`123`);
define("DB",`agromash`);
?>

У phpMyAdmin я створила користувача з іменем Dina,паролем 123,хостом localhost:8080,який має усі права доступу до бази данних agromash. наче б то все правильно

3

(12 відповідей, залишених у Бази даних)

koala написав:

Дочекайтеся на повідомлення про перевищення часу скриптом PHP.

Видало ось такі помилки
Warning: mysql_connect() [function.mysql-connect]: MySQL server has gone away in Z:\home\localhost\www\product\classes\ACore.php on line 7

Warning: mysql_connect() [function.mysql-connect]: Error while reading greeting packet. PID=3640 in Z:\home\localhost\www\product\classes\ACore.php on line 7

Warning: mysql_connect() [function.mysql-connect]: MySQL server has gone away in Z:\home\localhost\www\product\classes\ACore.php on line 7

Fatal error: Maximum execution time of 30 seconds exceeded in Z:\home\localhost\www\product\classes\ACore.php on line 7
Сьома стрічка це

 $this->db= mysql_connect(HOST,USER,PASSWORD);

4

(12 відповідей, залишених у Бази даних)

koala написав:

А в header.php ніяких підключень до бази не встановлюється?

Ні, там виключно html-код

5

(12 відповідей, залишених у Бази даних)

koala написав:

коду якої ви не навели.

ось код сторінки,яку я намагаюсь завантажити

<?php
header("Content-Type:text/html;charset=UTF-8");

require_once("config.php");
require_once("classes/ACore.php");

if($_GET['option']){
    $class = trim(strip_tags($_GET['option']));
}
else{
    $class = 'main';
}

if(file_exists("classes/".$class.".php")){
    include("classes/".$class.".php");
    if(class_exists($class)){
        $obj = new $class;
        $obj->get_body();
    }
    else{
        exit("<p>Не адреса</p>");
    }
}
else{
    exit("<p>Неправильний доступ</p>");
}
?>

6

(12 відповідей, залишених у Бази даних)

Допоможіть розібратися, в чому проблема, чому виникає помилка No database selected. Створила базу даних agromash, в ній таблицю product в MySql, тепер намагаюсь її вивести в таблицю на сайті. підкажіть будь ласка, в чому проблема. Якщо ставлю два __construct і перезавантажую сторінку, воно просто без перерви її вантажить, але перезавантажити не може. Можливо проблема в циклі, але я поки не можу розібратися, яка саме

<?php
abstract class ACore{
 
protected $db;
 
public function _construct(){
    $this->db = mysql_connect(HOST,USER,PASSWORD);
    if (!$this->db){
        exit("Error".mysql_error());
    }
    if(!mysql_select_db(DB,$this->db)){
        exit("We have not this DB");
    }
    mysql_query("SET NAMES 'UTF8'");
    }
 
protected function get_header(){
    include "header.php";
}
    
    public function get_body(){
        $this->get_header();
        
        $query = "SELECT `id`,`name`,`number`,`price` FROM `product`";
 
         $result = mysql_query($query) or  die(mysql_error());
    if (!$query){
        
    exit(mysql_error());
    }
    
    echo "<div class='container'>
            
            <div class='collections'>
        
<div class='product'>
 
<table border=2  align=center bgcolor=black cellspacing=1 cellpadding=5 >
<tr >";
$row = array();
         while ($row = mysql_fetch_array($result)){
            
                echo "<td  align=center  rowspan=2>
<b><font  >№ П.П</font></b>
</td>
 
<td  align=center  rowspan=2>
<b><font  > Найменування продукції          
</font></b>
</td>
 
<td  align=center  rowspan=2>
<b><font  >Номер по каталогу
</font></b>
</td>
 
<td  align=center >
<b><font  >Ціна 
</font></b>
</td>
</tr>
<tr>
  
</tr>";
 
            $ID = $row[id];
            $Name = $row[name];
            $Number = $row[number];
            $Price = $row[price];
            
        
         }
         
         echo"</table>
</div>  
</div>
</div>";
    }
}
?>
vitia444 написав:

У вас тут помилка в алгоритмі.
1. Навіщо так заповнювати матрицю? Пройдіться по кожному елементу і кожному присвойте рандом.
2. Вам потрібно перевіряти не кожен елемент матриці, а перевіряти кожен рядок, чи в кожному рядку перший елемент менший останнього, ну і чи менші вони взагалі кількості стовпчиків.

але ж цей алгоритм працює правильно і матриця заповнюється так,як потрібно. перші елементи менше останніх і всі елементи менше кількості елементів у рядку,навіщо його змінювати,якщо потрібно лише правильно переписати їх до матриці В?

vitia444 написав:

От Ви кажете, що перший елемент рядка менший останнього, а рандом, який заповнює матрицю, про це знає?

знає,я вже писала змінений код вище

olmovc написав:

Кожен рядок матриці A на першій і останній позиції містить індекси відповідно початку і кінця діапазону елементів рядка, які необхідно переписати у відповідний рядок матриці B. Створити матрицю B з необхідною кількістю стовпчиків у кожному рядку та переписати до неї вказані елементи з матриці A. Відсортувати кожен рядок матриці A за зростанням.

Ось такі були початкові умови якщо були зміни то напишіть Правильну умову задачі.

Умова залишилась такою ж,але,щоб вона виконувалась,потрібно,щоб значення першого елемента у кожному рядку матриці було меншим,ніж значення останнього елемента у рядку,а також,щоб їх значення не перевищували кількість елементів у рядку.Цю частину умови я зробила,ось код

using System;

namespace Ex06
{
    class Program
    {
        static int[,] A;
        static int[][] B;
        public static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            // TODO: Implement Functionality Here
            SetA();
            ShowA();
            //SetB();
            //ShowB();
            SortA();
            ShowA();
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }
        /// <summary>
        /// Заповнити масив A
        /// </summary>
        static void SetA()
        {
            int rows, cols, fill;
            Console.Clear();
            Console.WriteLine("Введiть кiлькiсть рядкiв i стовпчикiв матрицi:");
            cols = rows = int.Parse(Console.ReadLine());
            //cols = int.Parse(Console.ReadLine());
            A = new int[rows, cols];
            // кількість рядків, кількість стовпчиків і коефіцієнт заповнення матриці A
            //Console.WriteLine("Введiть коефiцiєнт заповнення матрицi (0...100 %):");
            // fill = int.Parse(Console.ReadLine());
            fill = 100;
            Random Rnd = new Random();
            // заповнення матриці випадковими числами із заданою щільністю
            int fillcount = fill * rows * cols / 100, pos = 0;
            while (pos < fillcount)
            {
                int rpos = Rnd.Next(A.GetLength(0));
                int cpos = Rnd.Next(A.GetLength(1));
                if (A[rpos, cpos] == 0)
                {
                    A[rpos, cpos] = Rnd.Next(2, rows + 1);
                    ++pos;
                }
            }
            for (int i = 0; i < rows; i++)
            {
                for (int j = 0; j < cols; j++)
                {
                    if (A[i, 0] > A[i, cols - 1])
                    {
                        int t = A[0, j];
                        A[i, 0] = A[i, cols - 1];
                        A[i, cols - 1] = t;
                    }
                //    else if (A[i, 0] == A[i, cols - 1])
                //    {
                //        SetB();
                //    }
                //    else SetB();
                }
            }
        }




        //static void SetB()
        //{
        //    //int rows = A.GetLength(0);
        //    //int cols = rows;
        //    //int i = 0;
        //    //int a = A[i, cols] - A[i, 0];
        //    //for (i = A[i, 0]; i < a; i++)
        //    //{
        //    //    for (int j = 0; j < cols; j++)
        //    //    {

        //    //        B[i][0] = A[i, A[i, 0] + i];
        //    //    }
        //    //}
        //    int rowsCount = A.GetLength(0);
        //    B = new int[rowsCount][];
        //    int startPos = 0, endPos = 0;

        //    for (int i = 0; i < rowsCount; i++)
        //    {
        //        int colsCount = A.GetLength(1);
        //        startPos = A[i, 0];
        //        endPos = A[i, colsCount - 1];
        //        int lengthRowB = endPos - startPos;

        //        if ((lengthRowB < 1) || (lengthRowB > colsCount))
        //        {
        //            B[i] = new int[0];
        //            continue;
        //        }

        //        endPos--;
        //        startPos--;

        //        if ((endPos >= colsCount) || (startPos >= colsCount))
        //        {
        //            B[i] = new int[0];
        //            continue;
        //        }

        //        if ((endPos < 0) || (startPos < 0))
        //        {
        //            B[i] = new int[0];
        //            continue;
        //        }

        //        B[i] = new int[lengthRowB];

        //        int count = 0;
        //        for (int col = startPos; col < endPos; col++)
        //        {
        //            B[i][count] = A[i, col];
        //            //Console.WriteLine("r={0},B={1}",i,B[i][count]);
        //            count++;
        //        }
        //    }

        //}


        //<summary>
        //вивід матриці на дисплей
        //</summary>
        static void ShowA()
        {
            // вивід матриці на дисплей
            Console.WriteLine("Вмiст матрицi A:");
            for (int i = 0; i < A.GetLength(0); i++)
            {
                for (int j = 0; j < A.GetLength(1); j++)
                {
                    Console.Write("{0, 4}", A[i, j]);
                }
                Console.WriteLine();
            }
        }

        //static void ShowB()
        //{
        //    int cols = B.GetLength(1);
        //    int rows = B.GetLength(0);
        //    Console.WriteLine("---Матриця B--");
        //    for (int i = 0; i < rows; i++)
        //    {
        //        for (int j = 0; j < cols; j++)
        //            Console.Write("{0, 4}", B[i][j]);

        //        if (B[i].Length > 0)
        //            Console.WriteLine();
        //    }
        //    Console.WriteLine("---Матриця B--");
        //}

        static void SortA()
        {
            for (int i = 0; i < A.GetLength(0); i++)
            {
                int rowLength = A.GetLength(1);
                int[] arrayRow = new int[rowLength];
                for (int j = 0; j < rowLength; j++)
                {
                    arrayRow[j] = A[i, j];
                }
                Array.Sort(arrayRow);
                for (int j = 0; j < rowLength; j++)
                {
                    A[i, j] = arrayRow[j];
                }
            }
        }
    }
}

а от переписати потрібні елементи у матрицю В мені так і не вдається.
наприклад,якщо матриця
А=3 4 5 3 2 6 5
    4 5 6 2 1 1 4
    5 4 3 2 2 1 6
то матриця В буде виглядати так
В=3 2 6
    1
    1 6

vitia444 написав:

А дебажити пробували? Break Points, F10, F11?

Мені здається, я знаю де помилка, але щоб Ви поменше писали на різних формах свої прохання про допомогу - Вам потрібно навчитись мистецтву пошуку помилок.

Тому поставте десь точку зупинки, запустіть програму, поклацайте F10/F11, подивіться на значення змінних, подумайте, які вони мають бути і які вони стали, і так на кожному кроці.

Наче б то зробила так,як ви написали,тепер помилка тут

 B[i] = new int[currentColumnsCount];

переконатись  у відсутності ділення на ноль. Якась маячня

P.Y. написав:

Ця програма зчитує 1.txt рядок за рядком, конвертує кожен рядок у число, сортує ці числа й зберігає їх у вигляді тексту в 2.txt
Якщо рядок в 1.txt містить не число, а щось інше, виникає ексепшен, якого ми не бачимо, бо його перехоплює мовчазний try...catch, і програма зупиняється.

Скажіть,а як зробити так,щоб читало і сортувало текст?

Підкажіть,що я роблю не так,чому рядки не переписуються в інший файл?

using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
 
namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                string text = string.Empty;
                List<int> dest = new List<int>();
                var source = File.ReadLines("1.txt").ToList();
                source.ForEach(num => dest.Add(int.Parse(num)));
                dest.Sort();
                dest.ForEach(num => text += num.ToString() + "\r\n");
                File.WriteAllText("2.txt", text);
            }
            catch
            {
            }
        }
    }
}
vitia444 написав:

Так Ви ж не лише там змінили мій код

навіть,якщо більше нічого не змінювати,помилка залишається

using System;

namespace Ex06
{
    class Program
    {
        static int[,] A;
        static int[][] B;
        public static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            // TODO: Implement Functionality Here
            SetA();
            ShowA();
            GetB(A);
            ShowB();
            SortA();
            ShowA();
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }
        /// <summary>
        /// Заповнити масив A
        /// </summary>
        static void SetA()
        {
            int rows, cols, fill;
            Console.Clear();
            Console.WriteLine("Введiть кiлькiсть рядкiв i стовпчикiв матрицi:");
            rows = int.Parse(Console.ReadLine());
            cols = int.Parse(Console.ReadLine());
            A = new int[rows, cols];
            // кількість рядків, кількість стовпчиків і коефіцієнт заповнення матриці A
            Console.WriteLine("Введiть коефiцiєнт заповнення матрицi (0...100 %):");
            fill = int.Parse(Console.ReadLine());
            Random Rnd = new Random();
            // заповнення матриці випадковими числами із заданою щільністю
            int fillcount = fill * rows * cols / 100, pos = 0;
            while (pos < fillcount)
            {
                int rpos = Rnd.Next(A.GetLength(0));
                int cpos = Rnd.Next(A.GetLength(1));
                if (A[rpos, cpos] == 0)
                {
                    A[rpos, cpos] = Rnd.Next(2, 10);
                    ++pos;
                }
            }
        }

        static int[][] GetB(int[,] A)
        {
            int columnsAtA = A.GetLength(1);
            int[][] B = new int[columnsAtA][];

            int currentColumnsCount;

            for (int i = 0; i < columnsAtA; i++)
            {
                currentColumnsCount = A[i, columnsAtA - 1] - A[i, 0] + 1;
                B[i] = new int[currentColumnsCount];

                for (int j = 0; j < currentColumnsCount; j++)
                {
                    //не зебуваємо, що нумерація з 0, тому третій стовпчик насправді 2-ий
                    B[i][j] = A[i-1, A[i, 0] - 1 + j];
                }
            }

            return B;
        }


        /// <summary>
        /// вивід матриці на дисплей
        /// </summary>
        static void ShowA()
        {
            // вивід матриці на дисплей
            Console.WriteLine("Вмiст матрицi A:");
            for (int i = 0; i < A.GetLength(0); i++)
            {
                for (int j = 0; j < A.GetLength(1); j++)
                {
                    Console.Write("{0, 4}", A[i, j]);
                }
                Console.WriteLine();
            }
        }

        static void ShowB()
        {
            Console.WriteLine("---Матриця B--");
            for (int i = 0; i < B.GetLength(0); i++)
            {
                for (int j = 0; j < B[i].Length; j++)
                    Console.Write("{0, 4}", B[i][j]);

                if (B[i].Length > 0)
                    Console.WriteLine();
            }
            Console.WriteLine("---Матриця B--");
        }

        static void SortA()
        {
            for (int i = 0; i < A.GetLength(0); i++)
            {
                int rowLength = A.GetLength(1);
                int[] arrayRow = new int[rowLength];
                for (int j = 0; j < rowLength; j++)
                {
                    arrayRow[j] = A[i, j];
                }
                Array.Sort(arrayRow);
                for (int j = 0; j < rowLength; j++)
                {
                    A[i, j] = arrayRow[j];
                }
            }
        }
    }
}
vitia444 написав:
                {
                    //не зебуваємо, що нумерація з 0, тому третій стовпчик насправді 2-ий
                    B[i][j] = A[i-1, A[i, 0]-1+j ];
                }
          

я так само записувала,така ж помилка

ось,що у мене вийшло,я трохи змінила умову,щоб  перший і останній елементи  були меншими,ніж кількість елементів у рядку,а також перший елемент  був менше останнього,але тепер не розумію,чому тут

{
                    //не зебуваємо, що нумерація з 0, тому третій стовпчик насправді 2-ий
                    B[i][j] = A[i-1, A[i, 0]-1+j ];
                }

видає помилку про те, щоб переконатись у тому,що максимальний індекс у списку менше розміру списку

using System;

namespace Ex06
{
    class Program
    {
        static int[,] A;
        static int[][] B;
        public static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            // TODO: Implement Functionality Here
            SetA();
            ShowA();
            B=GetB(A);
            //SetB();
            ShowB();
            SortA();
            ShowA();
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }
        /// <summary>
        /// Заповнити масив A
        /// </summary>
        static void SetA()
        {
            int rows, cols, fill;
            Console.Clear();
            Console.WriteLine("Введiть кiлькiсть рядкiв i стовпчикiв матрицi:");
            cols = rows = int.Parse(Console.ReadLine());
            //cols = int.Parse(Console.ReadLine());
            A = new int[rows, cols];
            // кількість рядків, кількість стовпчиків і коефіцієнт заповнення матриці A
            //Console.WriteLine("Введiть коефiцiєнт заповнення матрицi (0...100 %):");
            // fill = int.Parse(Console.ReadLine());
            fill = 100;
            Random Rnd = new Random();
            // заповнення матриці випадковими числами із заданою щільністю
            int fillcount = fill * rows * cols / 100, pos = 0;
            while (pos < fillcount)
            {
                int rpos = Rnd.Next(A.GetLength(0));
                int cpos = Rnd.Next(A.GetLength(1));
                if (A[rpos, cpos] == 0)
                {
                    A[rpos, cpos] = Rnd.Next(1, 5);
                    ++pos;
                }
            }
            for (int i = 0; i < rows; i++)
            {
                for (int j = 0; j < cols; j++)
                {
                    if (A[i, 0] > A[i, cols - 1])
                    {
                        int t = A[0, j];
                        A[i, 0] = A[i, cols - 1];
                        A[i, cols - 1] = t;
                    }
                    else if (A[i, 0] == A[i, cols - 1])
                    {
                        GetB(A);
                    }
                    else GetB(A);
                }
            }
        }



        static int[][] GetB(int[,] A)
        {
            int columnsAtA = A.GetLength(1);
            int[][] B = new int[columnsAtA][];

            int currentColumnsCount;

            for (int i = 0; i < columnsAtA; i++)
            {
                currentColumnsCount = A[i, columnsAtA - 1] - A[i, 0] + 1;
                B[i] = new int[currentColumnsCount-1];

                for (int j = 0; j < currentColumnsCount; j++)
                {
                    //не зебуваємо, що нумерація з 0, тому третій стовпчик насправді 2-ий
                    B[i][j] = A[i-1, A[i, 0]-1+j ];
                }
            }

            return B;
        } static void ShowA()
        {
            // вивід матриці на дисплей
            Console.WriteLine("Вмiст матрицi A:");
            for (int i = 0; i < A.GetLength(0); i++)
            {
                for (int j = 0; j < A.GetLength(1); j++)
                {
                    Console.Write("{0, 4}", A[i, j]);
                }
                Console.WriteLine();
            }
        }

        static void ShowB()
        {
            int cols = B.GetLength(1);
            int rows = B.GetLength(0);
            Console.WriteLine("---Матриця B--");
            for (int i = 0; i < rows; i++)
            {
                for (int j = 0; j < cols; j++)
                    Console.Write("{0, 4}", B[i][j]);

                if (B[i].Length > 0)
                    Console.WriteLine();
            }
            Console.WriteLine("---Матриця B--");
        }

        static void SortA()
        {
            for (int i = 0; i < A.GetLength(0); i++)
            {
                int rowLength = A.GetLength(1);
                int[] arrayRow = new int[rowLength];
                for (int j = 0; j < rowLength; j++)
                {
                    arrayRow[j] = A[i, j];
                }
                Array.Sort(arrayRow);
                for (int j = 0; j < rowLength; j++)
                {
                    A[i, j] = arrayRow[j];
                }
            }
        }
    }
}
olmovc написав:

а якщо перший елемент (першого рядку наприклад) більший за кількість елементів рядку
або останній елемент (першого рядку наприклад) менший від значення  першого елементу рядку
тоді не буде у матриці В 0 (першого) рядку так ?
9 5 6 4 7 3 0
2 6 8 5 4 0 3
3 5 7 2 9 8 3
5 4 3 1 1 9 6
---------
-null--
8 5
2
9 6

ні,перший і останній елементи повинні бути меншими,ніж кількість елементів у рядку,а також перший елемент повинен бути менше останнього

Ви маєте на увазі, замість цієї частини коду:

olmovc написав:
    static void SetB()
    {
      int rowsCount = A.GetLength(0);
      B = new int[rowsCount][];
      int startPos = 0, endPos = 0;
      
      for (int i = 0; i < rowsCount; i++)
      {
        int colsCount = A.GetLength(1);
        startPos =  A[i,0];
        endPos = A[i,colsCount - 1];
        int lengthRowB = endPos - startPos;
        
        if ((lengthRowB < 1)||(lengthRowB > colsCount))
        {
          B[i] = new int[0];
          continue;
        }
        
        endPos--;
        startPos--;
        
        if ((endPos >= colsCount)||(startPos >= colsCount))
        {
          B[i] = new int[0];
          continue;
        }
        
        if ((endPos < 0)||(startPos < 0))
        {
          B[i] = new int[0];
          continue;
        }
        
        B[i] = new int[lengthRowB];
                
        int count = 0;
        for (int col = startPos; col < endPos; col++)
        {          
          B[i][count] = A[i,col];
          //Console.WriteLine("r={0},B={1}",i,B[i][count]);
          count++;
        }        
      }
    }
    
   

вставити цю:

static int[][] GetB(int[,] A)
        {
            int columnsAtA = A.GetLength(1);
            int [][] B = new int[columnsAtA][];
 
            int currentColumnsCount;
 
            for (int i = 0; i < columnsAtA; i++)
            {
                currentColumnsCount = A[i, columnsAtA - 1] - A[i, 0] + 1;
                B[i] = new int[currentColumnsCount];
 
                for (int j = 0; j < currentColumnsCount; j++)
                {
                    //не зебуваємо, що нумерація з 0, тому третій стовпчик насправді 2-ий
                    B[i][j] = A[i, A[i, 0] - 1 + j];
                }
            }
 
            return B;
        }

?

olmovc написав:

запропонуйте як повинно виглядати результат - все зроблю. пишіть...

Дякую) Уявімо,що матриця А виглядає так:

3 5 6 4 7 3 5
2 6 8 5 4 0 3
3 5 7 2 9 8 3
5 4 3 1 1 9 6

ми дивимося на значення першого та останнього елементів кожного рядку(перший елемент повинен бути меншим,ніж останній) і у матрицю В переписуємо ті елементи,у яких індекси відповідають значенню першого та останнього елементу матриці А та елементі,що знаходяться між ними,тобто матриця В повинна виглядати так:

4 7 3
8 5
2
9 6

19

(13 відповідей, залишених у C++)

koala написав:

Вітаю, ви вже навчилися працювати з гуглом. Ще допомога потрібна?

Ваша? Пфф. Ні,дякую

20

(13 відповідей, залишених у C++)

koala написав:

Щоб зрозуміти, вам треба не тему створювати, а код писати. А то
http://s018.сайт-злодій/i504/1305/4e/128b3beefcef.jpg

Ось мій код,але,на жаль, моїх знань недостатньо,аби правильно реалізувати цю програму. Дякую,ви дуже допомогли.

#include <iostream>
#include <algorithm>
#include <cassert>
 
 
template<typename Type, std::size_t Size>
class min_priority_queue {
 
public:
   min_priority_queue() : index(0) {}   
 
   void push(Type const& value) {
      assert(index < Size);
      container[index] = value;
      std::push_heap(&container[0], &container[0] + ++index, std::greater<int>());
   }
   
   void pop() {
      assert(index > 0);
      std::pop_heap(&container[0], &container[0] + index--, std::greater<int>());
   }
   
   Type & top() {
      assert(index > 0);
      return container[0];
   }
   
   Type const& top() const {
      assert(index > 0);
      return container[0];
   }
 
private:
   Type         container[Size];
   std::size_t  index;
};
 
 
int main() {
   min_priority_queue<int, 10> queue;
   
   queue.push(1);
   std::cout << queue.top() << std::endl;
   queue.push(2);
   std::cout << queue.top() << std::endl;
   queue.pop();
   std::cout << queue.top() << std::endl;
   queue.push(-1);
   std::cout << queue.top() << std::endl;
   queue.push(-3);
   std::cout << queue.top() << std::endl;
   queue.pop();
   std::cout << queue.top() << std::endl;
   queue.push(6);
   std::cout << queue.top() << std::endl;
}