小编You*_*Who的帖子

如何将二维数组的所有元素初始化为特定值?

有没有类似于将memset()二维数组的所有元素初始化为某个值的函数?memset只能用于将值初始化为0和-1。

c++ c++14

6
推荐指数
1
解决办法
180
查看次数

循环内声明

在像下面这样的循环中

for(int i=0; i<n; i++) {
  vector<int>v(100);
}
Run Code Online (Sandbox Code Playgroud)

在这方面我有一个疑问

  1. 对于每个循环,向量会被一次又一次地声明吗?如果是,为什么它不会导致问题(因为如果我们重新声明相同的东西,它会导致问题,例如两次 int x;)。

  2. 大小在每个循环中不断增加直到结束,在上面或这样的循环中

for(int i=0;i<10000;i++) {
 int k;
}
Run Code Online (Sandbox Code Playgroud)

c++ c++14

3
推荐指数
2
解决办法
123
查看次数

C++ unordered_map 实现问题映射中先前的值被遗忘

在下面的代码中,为什么地图大小始终为 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)

c++ algorithm language-implementation

1
推荐指数
1
解决办法
78
查看次数

标签 统计

c++ ×3

c++14 ×2

algorithm ×1

language-implementation ×1