// and words to StrH and get a vector of word ids void TStrUtil::GetAddWIdV(TStrHash<TInt>& StrH, const char *CStr, TIntV& WIdV) { TChA ChA(CStr); TVec<char *> WrdV; TInt WId; TStrUtil::SplitWords(ChA, WrdV); WIdV.Clr(false); for (int w = 0; w < WrdV.Len(); w++) { WIdV.Add(StrH.AddDatId(WrdV[w])); } }
void TStrUtil::GetWIdV(const TStrHash<TInt>& StrH, const char *CStr, TIntV& WIdV) { const int NotWId = -1; TChA ChA(CStr); TVec<char *> WrdV; TInt WId; TStrUtil::SplitWords(ChA, WrdV); WIdV.Clr(false); for (int w = 0; w < WrdV.Len(); w++) { if (StrH.IsKeyGetDat(WrdV[w], WId)) { WIdV.Add(WId); } else { WIdV.Add(NotWId); } } }
TEST(TStr, Constructors) { TStr Default; TStr CStr("abc"); TStr OneChar('a'); TStr CopyCStr(CStr); TStr Move(TStr("abc")); TStr ChA(TChA("abc")); TStr SStr(TSStr("abc")); EXPECT_EQ(Default, ""); EXPECT_EQ(CStr, "abc"); EXPECT_EQ(OneChar, "a"); EXPECT_EQ(CopyCStr, "abc"); EXPECT_EQ(Move, "abc"); EXPECT_EQ(ChA, "abc"); EXPECT_EQ(SStr, "abc"); EXPECT_EQ(TStr(nullptr), ""); }
TStr TMOut::GetAsStr() const { TChA ChA(BfL); for (int BfC=0; BfC<BfL; BfC++){ChA+=Bf[BfC];} return ChA; }