有没有类似于将memset()二维数组的所有元素初始化为某个值的函数?memset只能用于将值初始化为0和-1。
在像下面这样的循环中
for(int i=0; i<n; i++) {
vector<int>v(100);
}
Run Code Online (Sandbox Code Playgroud)
在这方面我有一个疑问
对于每个循环,向量会被一次又一次地声明吗?如果是,为什么它不会导致问题(因为如果我们重新声明相同的东西,它会导致问题,例如两次 int x;)。
大小在每个循环中不断增加直到结束,在上面或这样的循环中
for(int i=0;i<10000;i++) {
int k;
}
Run Code Online (Sandbox Code Playgroud) 在下面的代码中,为什么地图大小始终为 1,它没有保存root->val地图中以前的值,正如我在标准输出中看到的那样。我期望它应该记住地图中放入的所有值。
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
* };
*/
class FindElements {
public:
unordered_map<int,int>mp;
FindElements(TreeNode* root) {
if(!root) return;
if(root->val==-1){
root->val=0;
}
mp[root->val]=1;
// output
cout<<root->val<<" "<<mp[root->val]<<" "<<mp.size()<<endl;
if(root->left){
root->left->val=2*(root->val)+1;
FindElements(root->left);
}
if(root->right){
root->right->val=2*(root->val)+2; …Run Code Online (Sandbox Code Playgroud)