質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

パフォーマンス

コード効率の向上や計算に関する質問には、このタグを使ってください。

Q&A

解決済

1回答

494閲覧

PHP標準ライブラリ内クラスのメソッドの処理内容のソースが見つかりません。

MonsterEnergy

総合スコア14

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

パフォーマンス

コード効率の向上や計算に関する質問には、このタグを使ってください。

0グッド

0クリップ

投稿2022/02/10 09:19

編集2022/02/10 09:44

SplPriorityQueueというPHP標準ライブラリクラスのinsertというメソッドの処理内容を見たいと思い、ソースを見ましたが以下の様にメソッドの処理内容が記載されておらず困っております。(insert時のキューの優先度の設定を自分で設定する方法がわからないため、同メソッドの処理を見ようとしています)
https://github.com/php/php-src/blob/5b01c4863fe9e4bc2702b2bbf66d292d23001a18/ext/spl/spl_heap.stub.php#L10

PHP

1class SplPriorityQueue implements Iterator, Countable 2{ 345 /** @return bool */ 6 public function insert(mixed $value, mixed $priority) {} 78

これについて以下の質問にご回答いただけないでしょうか。
①どこに実際のメソッドの処理が記載されているのでしょうか?
②なぜ上記のソース箇所にはメソッドの中身がないのでしょうか?

よろしくお願い致します。

追記------------------------------------------------------------------------------------
SplPriorityQueueを使ってやりたいことは以下のようなものです。優先度付きキューを使わない方法もあると思いますが、優先度付きキューを使って解決したいです。
[[1,1,0,0,0],
[1,1,1,1,0],
[1,0,0,0,0],
[1,1,0,0,0],
[1,1,1,1,1]],
という各要素が配列の配列を与えられたら、
この各要素内の1の数を比較して、1が大きい順に順位をつけます。
1の数が同じ場合は、配列内のインデックス番号が大きい方が順位を上にしたいです。
その順位付けをSplPriorityQueueを使って実行したいです。

You are given an m x n binary matrix mat of 1's (representing soldiers) and 0's (representing civilians). The soldiers are positioned in front of the civilians. That is, all the 1's will appear to the left of all the 0's in each row.

A row i is weaker than a row j if one of the following is true:

The number of soldiers in row i is less than the number of soldiers in row j.
Both rows have the same number of soldiers and i < j.
Return the indices of the k weakest rows in the matrix ordered from weakest to strongest.

Example 1:

Input: mat =
[[1,1,0,0,0],
[1,1,1,1,0],
[1,0,0,0,0],
[1,1,0,0,0],
[1,1,1,1,1]],
k = 3
Output: [2,0,3]
Explanation:
The number of soldiers in each row is:

  • Row 0: 2
  • Row 1: 4
  • Row 2: 1
  • Row 3: 2
  • Row 4: 5

The rows ordered from weakest to strongest are [2,0,3,1,4].
Example 2:

Input: mat =
[[1,0,0,0],
[1,1,1,1],
[1,0,0,0],
[1,0,0,0]],
k = 2
Output: [0,2]
Explanation:
The number of soldiers in each row is:

  • Row 0: 1
  • Row 1: 4
  • Row 2: 1
  • Row 3: 1

The rows ordered from weakest to strongest are [0,2,3,1].

Constraints:

m == mat.length
n == mat[i].length
2 <= n, m <= 100
1 <= k <= m
matrix[i][j] is either 0 or 1.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2022/02/10 09:24

結局SplPriorityQueueをつかって何がしたいのでしょうか? 使用方法ならマニュアルをみれば良いと思いますが・・・
m.ts10806

2022/02/10 09:37

>②なぜ上記のソース箇所にはメソッドの中身がないのでしょうか? 想像なのでこちらに書きますが、ファイル名の通り「stubだから」じゃないかなぁと。 PHPはCで書かれた言語なので、実際の処理はcのほうに書いてあるでしょうし。 結局は「使う方」のはずなので、yambejpさんの仰る通りと思います。
MonsterEnergy

2022/02/10 09:56

優先度キューの優先度決定基準を独自に設定する方法がリファレンスみてもよくわからないというか、無理そうだったので メソッドオーバーライドしようとしてます
m.ts10806

2022/02/10 09:58

質問内容の方向性が大きく変わっています。 既存回答との整合性が取れなくなるので、要件変わるのでしたら別質問としたほうが良いです。
MonsterEnergy

2022/02/10 10:00

はい。 「結局SplPriorityQueueをつかって何がしたいのでしょうか? 使用方法ならマニュアルをみれば良いと思いますが・・・」 に回答しただけです。
m.ts10806

2022/02/10 10:02

つまり追記前についた回答は全く無視するということになりますが 回答ついた後に大きく要件の方向性を変えてしまった(むしろ前半は単なる前提ですらない)ことが問題だと指摘しています。
m.ts10806

2022/02/10 10:05

細かくて申し訳ない。 「スタブだから」という回答で解決とされるのでしたら やはり質問本文を元に戻されたほうが良いと思います。
MonsterEnergy

2022/02/10 10:08

「追記前についた回答を全く無視することになる」の意味が全くわかりませんが、yambejpさんが最初にコメントされたので、それについて追記・回答しただけのシンプルな話です。 ありがとうございました。
m.ts10806

2022/02/10 10:16

こちらはあくまで「質問への追記修正依頼」のコメント欄です。 回答ついたにも関わらず大きく質問要件を追加しているのは「回答見てないのかな?」と疑われても仕方ないということは覚えておいてください。
guest

回答1

0

ベストアンサー

ファイル名のとおり、これはスタブ(形だけ用意してあるもの)です。

実際の中身はC言語で実装されています

投稿2022/02/10 09:37

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問