假设我有以下代码:
std::vector<std::string>* vs = new std::vector<std::string>;
vs->push_back(string("Hello"));
vs->push_back(string("World"));
Run Code Online (Sandbox Code Playgroud)
这会使指针无效vs吗?或者更具体地说,
void doSomething(std::vector<std::string>* vs) {
vs->push_back(string("thisWasATriumph"));
if (vs->size() < 3) {
doSomething(vs);
}
}
int main() {
std::vector<std::string>* vs = new std::vector<std::string>;
doSomething(vs);
std::cout << vs->back() << endl;
}
Run Code Online (Sandbox Code Playgroud)
调用是否doSomething(vs)具有之前插入的元素?
我正在创建一个函数,使一个大小为n的数组随机数,但我对while的比较会引发错误.
while ar.len() as i32 < size { }
Run Code Online (Sandbox Code Playgroud)
抱怨有:预期中的一个!,(,+,,,::,<,或>发现{.
如果我删除as i32它抱怨,mismatch types如果我添加一个as usize大小变量,那么它不会抱怨.