▁a ▁character ▁to ▁either ▁string , ▁makes ▁the ▁strings ' ▁contents ▁differ . ▁Copy - on - write ▁can ▁make ▁major ▁performance ▁changes ▁to ▁code ▁using ▁strings ▁( making ▁some ▁operations ▁much ▁faster ▁and ▁some ▁much ▁slower ). ▁Though ▁ ▁no ▁longer ▁uses ▁it , ▁many ▁( per haps ▁most ) ▁alternative ▁string ▁libraries ▁still ▁implement ▁copy - on - write ▁strings . ▁ ▁Some ▁string ▁implementations ▁store ▁ 1 6 - bit ▁or ▁ 3 2 - bit ▁code ▁points ▁instead ▁of ▁bytes , ▁this ▁was ▁intended ▁to ▁facil itate ▁processing ▁of ▁Unicode ▁text . ▁However , ▁it ▁means ▁that ▁conversion ▁to ▁these ▁types ▁from ▁ ▁or ▁from ▁arrays ▁of ▁bytes ▁is ▁a ▁slow ▁and ▁often ▁a ▁loss y ▁operation , ▁dependent ▁on ▁the ▁" locale ", ▁and ▁can ▁throw ▁exceptions . ▁Any ▁processing ▁advantages ▁of ▁ 1 6 - bit ▁code ▁units ▁van ished ▁when ▁the ▁variable - width ▁UTF - 1 6 ▁encoding ▁was ▁introduced ▁( though ▁there ▁are ▁still ▁advantages ▁if ▁you ▁must ▁communicate ▁with ▁a ▁ 1 6 - bit ▁API ▁such ▁as ▁Windows ). ▁Qt ' s ▁ ▁is ▁an ▁example . ▁ ▁Third - party ▁string ▁implementations ▁also ▁differ ed ▁consider ably ▁in ▁the ▁syntax ▁to ▁extract ▁or ▁compare ▁sub strings , ▁or ▁to ▁perform ▁searches ▁in ▁the ▁text . ▁ ▁Standard ▁string ▁types ▁ ▁The ▁ ▁class ▁is ▁the ▁standard ▁representation ▁for ▁a ▁text ▁string ▁since ▁C ++ 9 8 . ▁The ▁class ▁provides ▁some ▁typical ▁string ▁operations ▁like ▁comparison , ▁concaten ation , ▁find