![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
こんにちは、STL beginnerのBOUNDARYです。
以下のシーケンスにおいて、
#define BUFFER_TYPE vector<char>
BUFFER_TYPE sequence;
for(int i =0; i < 2; i++)
for(int j =0; j < 5; j++)
sequence.push_back( 'a' + j );
この中から連なる'c'と'd'の存在個数を調べたいです。
使うアルゴリズムは"個数を調べる"わけですからcout_ifを使うと考えました。
述語オブジェクトは'c'の個数を調べるだけならbind2ndを使えばいいと思うのですが
'c'の次の'd'を検査する方法が思いつきません。
私なりに考えてみたのですが、うまくいきません。
struct CountCD : public unary_function< BUFFER_TYPE::iterator*, bool > {
public:
result_type operator()( argument_type arg )
{
return arg == 'c' && ++*arg == 'd';
}
};
として、
BUFFER_TYPE::size_type seqCount =cout_if( sequence.begin(),
sequence.end() - 1, CountCD() );
とすると、
: error C2446: '==' : 'int' 型から 'char ** ' 型への変換ができません。
整数型からポインタ型への変換には reinterpret_cast、C スタイル キャストまたは関数スタイル キャストが必要です。
: error C2040: '==' : 'char ** ' は 'int' と間接操作のレベルが異なります。
: error C2446: '==' : 'int' 型から 'char *' 型への変換ができません。
整数型からポインタ型への変換には reinterpret_cast、C スタイル キャストまたは関数スタイル キャストが必要です。
: error C2040: '==' : 'char *' は 'int' と間接操作のレベルが異なります。
とエラーが出ます。
どなたかお知恵を貸していただけないでしょうか。
Windows2000sp4 VisualC++6.0sp5を使っています。
No.1ベストアンサー
- 回答日時:
エラーの原因は単純に型が違うからです。
count_if<vector<char>::iterator, bool(*)(char)>(sequence.begin(), sequence.end(), function)
と来るテンプレートですから。
struct CountCD : public unary_function< char, bool > {
public:
result_type operator()( argument_type arg )
{
return arg == 'c' && ++arg == 'd';
}
};
ですね・・・。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# c言語 コマンドライン引数 4 2023/02/09 18:47
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# C言語 共用体について コマンドライン引数で値を2つ入力したときに、argv[2]の値をUNI u1 4 2022/04/25 20:34
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
fgetsなどのときのstdinのバッ...
-
charでの計算?
-
'const char *' 型は 'char *' ...
-
文字列から空白を取り除きたい...
-
エンディアン:2バイトのデー...
-
C言語のfor文です。 繰り返しの...
-
テキストデータをそのままバイ...
-
charからLPTSTRへの変換方法
-
atoi( ) の反対をやりたい
-
C言語です
-
C言語プログラミングについて(...
-
C言語、リダイレクト
-
Win32APIでのエディットボック...
-
int型からchar型への変換
-
CStringをwchar_tに変換したい
-
【C言語】文字型と整数型の違い
-
strncpyと_tcsncpy_sのヌルの扱...
-
double型の値をchar配列に変換...
-
ソースコードエラー
-
【C言語】テキストファイル内の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
fgetsなどのときのstdinのバッ...
-
C言語のfor文です。 繰り返しの...
-
文字列から空白を取り除きたい...
-
charからLPTSTRへの変換方法
-
charでの計算?
-
配列をnビットシフトする
-
CStringをwchar_tに変換したい
-
c++ 文字列を入力して、一文字...
-
str系関数を使わずに二つの文字...
-
間接操作のレベルとは
-
int main()の・・・
-
C言語の入力した文字を反転させ...
-
atoi( ) の反対をやりたい
-
switch文で文字を比較すること...
-
テキストデータをそのままバイ...
-
Win32APIでのエディットボック...
-
double型の値をchar配列に変換...
-
干支のプログラム
-
コンパイルエラー invalid ope...
-
間接参照のレベルが異なっています
おすすめ情報