是否有一种方法来在C++中索引值组

是否有一种方法来在C++中索引值组,c++,indexing,mingw,C++,Indexing,Mingw,我想知道是否有办法排除索引或获取一组索引。例如,假设我有一个字符串。我想删除最后3个字符,并将它们放入字符串变量中。有没有一种方法可以在没有for循环或用户定义/外部函数的情况下实现这一点 string coolstring = "coolstr"; string CoolStringWithoutTheCool = coolstring[4-6] // trying to grab the last 3 values ("str") 是的,你可以使用substr std::string x

我想知道是否有办法排除索引或获取一组索引。例如,假设我有一个字符串。我想删除最后3个字符,并将它们放入字符串变量中。有没有一种方法可以在没有for循环或用户定义/外部函数的情况下实现这一点

string coolstring = "coolstr";
string CoolStringWithoutTheCool = coolstring[4-6] // trying to grab the last 3 values ("str")

是的,你可以使用substr

std::string x = coolstring.substr(4, 2);
<>在C++中,切片的概念通常由迭代器来满足。 迭代器就像指向元素的指针,两个迭代器开始和结束定义一个范围

所以,在你的情况下,你会想要

字符串coolstringwithout thecool=std::stringcoolstring.begin+4,coolstring.begin+7; 对于字符串有一个特殊的方法,称为substr,它也执行相同的操作

字符串CoolStringWithoutTheCool=coolstring.substr4,3;//您希望长度为3 对于这种特定的情况,std::string具有。C++中没有通用索引范围特性。运算符[]通常只接受一个整数。如果您使用int[10]这样的数组来说明该场景,那么问题会更清楚。string为这个确切的用例提供了一个成员函数,从而分散了对实际问题的注意力。