小编bas*_*h.d的帖子

css高度之间的差异:100%vs height:auto

我在接受采访时被问到"css height:100%height:auto?之间有什么区别?"

可以解释一下吗?

css

152
推荐指数
3
解决办法
12万
查看次数

堆栈上的运行时内存分配

我想知道堆栈区域上的运行时内存分配以及它与堆区域上的运行时内存分配的不同之处.

我知道如何使用库函数分配内存.

#include<alloca.h> void *alloca(size_t size); //(for runtime memory on stack)

#include<stdlib.h> void *malloc(size_t size); //(for run time memory on heap)
Run Code Online (Sandbox Code Playgroud)

我也知道如果我们使用alloca函数,我们不需要显式释放该内存,因为它与堆栈相关联,它会自动释放.

我想知道哪些系统调用与alloc和malloc相关联,以及它们如何在两者中工作.

c

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

从std :: set :: insert()返回迭代器是const吗?

根据C++引用,set :: insert应该返回迭代器指向新插入元素的对,或者现有元素(如果存在).

但我有一个问题,分配给迭代器,因为这个简单的例子显示:

int main() {
  set<int> set;
  *set.insert(5).first = 5;
  return 0;
} 
Run Code Online (Sandbox Code Playgroud)

我尝试过G ++和Clang,但都不行.

set.cc:7:24: error: read-only variable is not assignable
  *set.insert(5).first = 5;
  ~~~~~~~~~~~~~~~~~~~~ ^
Run Code Online (Sandbox Code Playgroud)

我在文档中找不到任何指示迭代器应该遵循const对象的内容,类型签名中的任何内容都不会指示这一点.有人可以帮助我理解为什么这不起作用?

c++ stl

8
推荐指数
2
解决办法
2227
查看次数

使用erase和insert替换向量中的元素

void replace(vector<string> my_vector_2, string old, string replacement){

    vector<string>::iterator it;
    for (it = my_vector_2.begin(); it != my_vector_2.end(); ++it){

        if (*it==old){
            my_vector_2.erase(it);
            my_vector_2.insert(it,replacement);

        }
    }

}
Run Code Online (Sandbox Code Playgroud)

所以,我希望这个函数用字符串替换替换向量中所有出现的字符串old.但是在调用此函数时,根本不会更改向量.我不确定我是否正确使用擦除和插入功能.有任何想法吗?

c++ iterator insert vector erase

7
推荐指数
2
解决办法
2万
查看次数

向量<int>上的Foreach范围迭代 - auto或auto&?

游戏引擎微优化情况:我正在使用C++ 11 range for循环来迭代a vector<int>,使用auto关键字.

什么是更快:

for(auto value : ints) ...
Run Code Online (Sandbox Code Playgroud)

要么

for(auto& value : ints) ...
Run Code Online (Sandbox Code Playgroud)

c++ performance foreach auto c++11

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

c ++中的"final"类实现

我试图理解cpp中"final"的实现代码:

以下是代码:

/* A program with compilation error to demonstrate that Final class cannot
   be inherited */

class Final;  // The class to be made final

class MakeFinal // used to make the Final class final
{
private:
    MakeFinal() { cout << "MakFinal constructor" << endl; }
friend class Final;
};

class Final : virtual MakeFinal
{
public:
    Final() { cout << "Final constructor" << endl; }
};

class Derived : public Final // Compiler error
{
public:
    Derived() { …
Run Code Online (Sandbox Code Playgroud)

c++

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

通过描述符获取文件的引用计数值(文件使用的计数器值)?

在Linux中,是否可以使用非内核API通过描述符获取指定文件的引用计数值(使用文件的计数器值)?

c linux file-descriptor posix-api

5
推荐指数
0
解决办法
2180
查看次数

如何将字符串集合作为TextReader传递?

我正在使用CSVHelper库,该库只需三行代码即可从CSV文件提取对象列表:

var streamReader = // Create a reader to your CSV file.
var csvReader = new CsvReader( streamReader );
List<MyCustomType> myData = csvReader.GetRecords<MyCustomType>();
Run Code Online (Sandbox Code Playgroud)

但是,按文件包含无意义的行,我需要跳过文件中的前十行。我认为使用LINQ来确保“干净”数据,然后将该数据传递给会很好CsvFReader,就像这样:

public TextReader GetTextReader(IEnumerable<string> lines)
{
    // Some magic here. Don't want to return null;
    return TextReader.Null;
}
public IEnumerable<T> ExtractObjectList<T>(string filePath) where T : class
{
    var csvLines = File.ReadLines(filePath)
                        .Skip(10)
                        .Where(l => !l.StartsWith(",,,"));
    var textReader = GetTextReader(csvLines);
    var csvReader = new CsvReader(textReader);
    csvReader.Configuration.ClassMapping<EventMap, Event>();
    return csvReader.GetRecords<T>();
}
Run Code Online (Sandbox Code Playgroud)

但是我真的很想通过像这样的流推送“静态”字符串集合TextReaer

我的替代方法是通过CsvReader逐行处理CSV文件,并在提取对象之前检查每一行,但我发现这有点笨拙。

c# csv stream

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

什么是使类抽象的好处

我们举一个例子,

class base{
public:
virtual void abstract() = 0;
};

class derived:public base{
public:
void abstract(){cout << "Abstract\n";}
};

int main{
derived d;
d.abstract();
return 0;
}
Run Code Online (Sandbox Code Playgroud)

它可以用其他方式编写,

class base{
    public:
    void abstract(){cout << "Abstract\n";}
    };

    int main{
    base b;
    b.abstract();
    return 0;
    }
Run Code Online (Sandbox Code Playgroud)

它也提供相同的结果,事实上我不需要派生类.我确实阅读了许多关于抽象类的文章,it says we can not instantiate base classpure virtual function强迫用户使用define the function.但是如果我们在两种情况下都会看到上面的代码,那么我得到相同的结果(or output).那么我的问题是abstract课程如何帮助我们?

c++ abstract-class

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

在类中使用List <T>

我发现了一个关于在类中使用List的代码示例.有些代码我不理解.Name和Description字段在List defination中有值,但Album字段没有值.(

new genre { Name = "Rock" , Description = "Rock music", Album?? }

).为什么?

public class Genre
{
    public string  Name { get; set; }
    public string  Description { get; set; }
    public List<Album> Albums { get; set; }
}

public class Album
{
    public string  Title { get; set; }
    public decimal  Price { get; set; }
    public Genre  Genre { get; set; }
}

var genre = new List<Genre>
{
    new genre { Name = "Rock" …
Run Code Online (Sandbox Code Playgroud)

c# class list generic-list

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