string_converter
クラス · 文字または文字列を整数列へ変換する
struct string_converter;
概要
文字または文字列を整数列へ変換する
文字種の先頭または指定したアルファベット内の位置を整数値として返す。
計算量
- 文字種による1文字変換は $O(1)$、指定文字列による変換は アルファベット長を $\sigma$ として $O(\sigma)$。列全体は要素数倍
メンバ関数
| 名前 | 説明 | 計算量 |
|---|---|---|
type |
文字種の先頭文字を返す | $O(1)$ |
convert |
(1) 文字を現在の文字種内の位置へ変換する (2) 文字を指定alphabet内の位置へ変換する (3) containerを文字種内の位置列へ変換する (4) containerを指定alphabet内の位置列へ変換する |
(1) $O(1)$ (2) alphabet長を $\sigma$ として $O(\sigma)$ (3) 要素数を $n$ として $O(n)$ (4) 要素数を $n$、alphabet長を $\sigma$ として $O(n\sigma)$ |
演算子
| 名前 | 説明 | 計算量 |
|---|---|---|
operator() |
(1) 文字を文字種または起点sからの位置へ変換する (2) 文字を指定alphabet内の位置へ変換する (3) containerを文字種または起点sからの位置列へ変換する (4) containerを指定alphabet内の位置列へ変換する |
(1) $O(1)$ (2) alphabet長を $\sigma$ として $O(\sigma)$ (3) 要素数を $n$ として $O(n)$ (4) 要素数を $n$、alphabet長を $\sigma$ として $O(n\sigma)$ |
メンバの詳細
convert
// (1)
int convert(const char &c);
// (2)
int convert(const char &c, const std::string &chars);
// (3)
template <class T>
auto convert(const T &v);
// (4)
template <class T>
auto convert(const T &v, const std::string &chars);
(1) 文字を現在の文字種内の位置へ変換する
- 計算量: $O(1)$
(2) 文字を指定alphabet内の位置へ変換する
- 計算量: alphabet長を $\sigma$ として $O(\sigma)$
(3) containerを文字種内の位置列へ変換する
- 計算量: 要素数を $n$ として $O(n)$
(4) containerを指定alphabet内の位置列へ変換する
- 計算量: 要素数を $n$、alphabet長を $\sigma$ として $O(n\sigma)$
operator()
// (1)
int operator()(const char &v, char s = 0);
// (2)
int operator()(const char &v, const std::string &chars);
// (3)
template <class T>
auto operator()(const T &v, char s = 0);
// (4)
template <class T>
auto operator()(const T &v, const std::string &chars);
(1) 文字を文字種または起点sからの位置へ変換する
- 計算量: $O(1)$
(2) 文字を指定alphabet内の位置へ変換する
- 計算量: alphabet長を $\sigma$ として $O(\sigma)$
(3) containerを文字種または起点sからの位置列へ変換する
- 計算量: 要素数を $n$ として $O(n)$
(4) containerを指定alphabet内の位置列へ変換する
- 計算量: 要素数を $n$、alphabet長を $\sigma$ として $O(n\sigma)$