Vscodeのcpp version
std::set<char> s = {'a', 'b', 'c'};
// キー2の要素が含まれているか
if (s.contains('b')) {
std::cout << "contain" << std::endl;
} else {
std::cout << "doesn't contain" << std::endl;
}
contains
関数はcpp+20から導入された関数です。vscodeの設定がc++20以上出ないと次のようなエラーを出力します。
同じこと言ってる人いた。
https://stackoverflow.com/questions/69456226/class-stdmap-has-no-member-contains-in-visual-studio-code
ただし、code runnnerに次のコマンドを指定してる場合は、-std=c++20
としてコンパイラがコンパイルするので実行されます(当たり前か)
g++ -std=c++20 hoge.cpp -o hoge
#include <iostream>
int main() {
std::cout << __cplusplus << std::endl;
return 0;
}
Vscodeでcppのversionを設定する方法
cppStandard
を検索。
pulldownから、ユーザー、ワークスペース両方の設定をc++20
に選択。
これでコンパイルエラーが綺麗に消えます。めでたし。
intelliSenseMode