+ ex conjugate() const
+ {
+ STLT *newcont = NULL;
+ for (const_iterator i=this->seq.begin(); i!=this->seq.end(); ++i) {
+ if (newcont) {
+ newcont->push_back(i->conjugate());
+ continue;
+ }
+ ex x = i->conjugate();
+ if (are_ex_trivially_equal(x, *i)) {
+ continue;
+ }
+ newcont = new STLT;
+ reserve(*newcont, this->seq.size());
+ for (const_iterator j=this->seq.begin(); j!=i; ++j) {
+ newcont->push_back(*j);
+ }
+ newcont->push_back(x);
+ }
+ if (newcont) {
+ ex result = thiscontainer(*newcont);
+ delete newcont;
+ return result;
+ }
+ return *this;
+ }
+