[quote user="Bruce Reeves SRNS"]DisplayRulePtrVector displayRuleP = displayRuleSetCP->GetDisplayRules();
I don't know how to define "displayRuleP" from the DisplayRulesSetCP [/quote]
displayRuleSetCP->GetDisplayRules() is documented as returning a reference to a DisplayRulePtrVector.
When you write this...
DisplayRulePtrVector displayRuleP = displayRuleSetCP->GetDisplayRules();
... you have declared a variable of type DisplayRulePtrVector. Giving the variable a name displayRuleP with a postfix HungarianP is misleading: it's not a pointer. DisplayRulePtrVector is a vector of display rule pointers, not a pointer to a vector of display rules (that would be named something like DisplayRuleVectorPtr).
The suffix Ptr on a type name is a convention that indicates that the type is a smart pointer.
The vector returned by GetDisplayRules() is copied into your variable. However, you almost certainly don't need a copy — you need a reference so that you can enumerate the display rules in that vector. You don't want to change the rules — you want only to see what's in each rule.
[quote user="Bruce Reeves SRNS"] I do not understand and cannot get to compile[/quote]
Without seeing the compiler error message it's hard to guess what the problem might be.
When you adopt Paul's suggestion...
DisplayRulePtrVector const& rules = displayRuleSetCP->GetDisplayRulesC();
... you declare a reference variable rules that gets you a reference to the internal list (not a copy of the list) stored in whatever displayRuleSetCP points to. What's more, your variable is const so you can't make any changes to whatever it refers to. Paul's wish is enforced by the compiler.