相关疑难解决方法(0)

为什么std :: string没有提供对char*的隐式转换?

std::string提供const char*c_str()const:

获取C字符串等效项

生成以字符串对象为内容的以null结尾的字符序列(c-string),并将其作为指向字符数组的指针返回.

将自动附加终止空字符.

返回的数组指向一个内部位置,该位置具有此字符序列所需的存储空间及其终止的空字符,但此数组中的值不应在程序中修改,只有在下次调用时才会保持不变.字符串对象的非常量成员函数.

他们为什么不定义operator const char*() const {return c_str();}

c++ string stl

26
推荐指数
4
解决办法
7940
查看次数

ostream_iterator vs每个循环效率

昨天看到这个用户发帖.我认为这是输出矢量的一种很酷的方式.所以我输入了一个例子并问自己这与for each循环相比如何?

template <typename T>
void printVectorO(std::vector<T> &v)
{
    std::cout << "Ostream_iterator contents: " << std::endl;
    auto start = std::chrono::high_resolution_clock::now();
    std::ostream_iterator<T> ost(std::cout, " ");
    std::copy(begin(v), end(v), ost);
    std::cout << std::endl;

    auto end = std::chrono::high_resolution_clock::now();
    auto time = end - start;
    auto nano = std::chrono::duration_cast<std::chrono::nanoseconds>(time);
    std::cout << "Ostream_iterator computation took: " << nano.count() << " nano seconds"<< std::endl;
    std::cout << std::endl;
}

template <typename T>
void printVectorC(std::vector<T> &v)
{
    std::cout << "For Each Loop contents: …
Run Code Online (Sandbox Code Playgroud)

c++ performance foreach iterator

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

标签 统计

c++ ×2

foreach ×1

iterator ×1

performance ×1

stl ×1

string ×1