小编Cpp*_*ITR的帖子

C++ std :: ref(T)和T&?之间的区别?

我对这个程序有一些疑问:

#include <iostream>
#include <type_traits>
#include <functional>
using namespace std;
template <typename T> void foo ( T x )
{
    auto r=ref(x);
    cout<<boolalpha;
    cout<<is_same<T&,decltype(r)>::value;
}
int main()
{
    int x=5;
    foo (x);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出是:

false
Run Code Online (Sandbox Code Playgroud)

我想知道,如果std::ref没有返回对象的引用,那么它会做什么?基本上,有什么区别:

T x;
auto r = ref(x);
Run Code Online (Sandbox Code Playgroud)

T x;
T &y = x;
Run Code Online (Sandbox Code Playgroud)

另外,我想知道为什么存在这种差异?为什么我们需要std::refstd::reference_wrapper什么时候有参考(即T&)?

c++ reference ref

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

C++中一个类成为容器的资格是什么?

我是新的C++编程和整个学期来containers举例,如vector,deque,map,等.

什么应该class满足container在C++中称为a 的最低要求?

c++ containers

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

auto作为函数参数

在C++ 14中,这样的东西是合法的(for lambdas): -

auto l = [](auto x, auto y) { return x+y; };
Run Code Online (Sandbox Code Playgroud)

但是这样的事情仍然不合法: -

auto sum (auto x, auto y)
{
     return x+y;
}
Run Code Online (Sandbox Code Playgroud)

我的好奇心是为什么不是第二个添加到标准中的(虽然它应该在C++ 17中有希望添加)?第二个的优点和缺点是什么?

c++ function parameter-passing auto

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

C++ 字符串与 vector&lt;char&gt;

我们每个人都知道,由于它们执行的许多特殊功能以及它们动态增长和减少的能力,我们应该更喜欢所有字符串应用程序的stringC++。什么string是 for charactersvector适用于其他数据类型和类,因为它表现出出色的性能。

但是,是否有任何情况需要我们更喜欢vector<char>(我很少看到)string

c++ string vector

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

std :: vector初始化类成员

我已阅读,std::vector总是初始化它与它们的对象default values说了一个int0.即使classesdefault constructor调用的地方也应该适用.然而,测试程序显示的结果有点不同: -

#include <iostream>
#include <vector>
using namespace std;

class A 
{
    public:
      int i;
      A(){};
};

class B
{
    public:
        int i;
        B() = default;
};

template <typename T>
void seev (const vector<T> &v)
{
    for (auto &x:v)
    {
        cout << x.i << ' ';
    }
    cout << '\n';
}

int main()
{
    vector<int> vi(5);  // just to show that std::vector always default initializes values …
Run Code Online (Sandbox Code Playgroud)

c++

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

标签 统计

c++ ×5

auto ×1

containers ×1

function ×1

parameter-passing ×1

ref ×1

reference ×1

string ×1

vector ×1