我想知道C ++的std :: string是否与平台无关,这意味着它可用于所有编译器实现。
背景是我正在使用一些非常古老的遗留代码,它们没有使用任何std :: string(std :: something)的东西,这使得它很难处理。它在Windows和Unix系统上编译,包括更为奇特的平台,如AIX,zLinux,Solaris和HPUX。
如果我可以使用std库,它会让生活变得更轻松,但我不知道它是否适用于所有这些平台。有这样的经历吗?
答案 0 :(得分:2)
std::string
是标准库的一部分,应该可以在任何符合要求的实现中使用。
答案 1 :(得分:2)
data.cov.cat <- data.frame(V1 = runif(10,0,10), V12 = c("blue", "red", "yellow", "pink","blue", "red", "yellow", "pink", "red", "yellow"))
data.cov.cat <- sapply(data.cov.cat, as.factor)
pum <- data.frame(Var1 = runif(10,0,1), Var2 = c(1,3,2,0,2,1,2,0,1,3))
data.cov.cat$PU <- sqldf("SELECT CASE WHEN Var1 >= 0.053 THEN 'Present'
WHEN Var1 < 0.053 OR Var2 IN (1,2,3) THEN 'Present'
WHEN Var1 < 0.053 OR Var2 = 0 THEN 'Not present'
ELSE 'NA'
END as newCol
FROM pum")$newCol
是C++ standard(cfr。 [string.classes] )的一部分,因此每个C ++标准符合实现都可以使用它。
请注意,某些内容可能已从主要的C ++版本更改为另一个版本,例如std::string::front(自C ++ 11以来)。如果您希望您的代码库可移植且一致,则应牢记这一点,并检查最高可用性(无论出于何种原因,稳定性,策略,向后兼容性等)。您可以定位的C ++版本。