1

std::listCList のチュートリアルをいくつか見てきましたが、これは C++ STLよりもはるかに機能が豊富なようです。特に私の注意を引いたのは、値で CList を検索でき、それが位置を返すことでした (すべての値が一意であると仮定すると、これは私の場合常に当てはまります)。ブースト スマート ポインターのリストを使用しようとしています。ポインターの値でリストを照会したり、位置の値をすばやく変更して要素にジャンプしたりすることは、私にとって非常に便利です。それを可能にする特殊なリストライブラリはありますか?

前もって感謝します!

4

2 に答える 2

3

はいあります。これは、標準のヘッダー<algorithm>、つまり関数テンプレートにありstd::findます。

于 2012-05-31T15:59:35.217 に答える
2

MFC を STL よりも機能が豊富であると呼ぶ必要はありませんが、MFC は、無料の関数やテンプレート インターフェイスよりもメンバー メソッドと継承の設計に有利に働くことは確かです。

STLコンテナでも一般的に機能する 、などのアルゴリズムの関数を使用して要素を検索できます。std::findstd::find_ifvector

あなたの特定のケースでは、次のようなことをしたいかもしれません:

#include <list>
#include <algorithm>

typedef std::list<int> IntList;
int nums[] = { 1,2,3,4,5,6,7,8,9 };
IntList numbers(nums, nums + sizeof(nums) / sizeof(int));
IntList::const_iterator found = std::find(numbers.begin(), numbers.end(), 7);
if (found != numbers.end())
    ;// then found is an iterator to the element containing the value 7
else
    ;// didn't find

LinuxでMFCのような動作を得る限り、Qtをお勧めします。これは、多くの便利な機能を備えた大規模なクロスプラットフォーム フレームワークです。さらに良いことに、それはオープンソースで無料で、QtCreator と呼ばれる独自の IDE が付属しています。これも悪くありません。

于 2012-05-31T16:11:58.013 に答える