小编21k*_*zyd的帖子

如何将地图移动到其他地图

std::map<long long, std::unique_ptr<A>> listOf1;
std::map<long long, std::unique_ptr<A>> listOf2;
Run Code Online (Sandbox Code Playgroud)

如何将listOf1添加到listOf2?可能它很棘手,因为值是unique_ptr.Normall解决方案:

listOf2.insert(listOf1.begin(), listOf1.end());
Run Code Online (Sandbox Code Playgroud)

不起作用并给出错误

严重级代码描述项目文件行源抑制状态错误C2280'std :: pair :: pair(const std :: pair&)':尝试引用已删除的函数c:\ program files(x86)\ microsoft visual studio 14.0\vc\include\xmemory0 737 Build

c++ algorithm c++11

4
推荐指数
2
解决办法
713
查看次数

如何正确地从函数中提供向量(type_traits)

我怎样才能返回std::vector从这个operator+()

#include <iostream>
#include <vector>
#include <type_traits>
#include <algorithm>
#include <utility>

template<typename> struct is_std_vector :  std::false_type {};
template<typename T, typename A> struct is_std_vector<std::vector<T, A>> :  std::true_type {};
template <typename T>
std::enable_if_t<is_std_vector<std::decay_t<T>>::value>
operator+(T&& vec1, T&& vec2)
{
    for (int i = 0; i < vec2.size(); ++i)
        vec1.emplace_back(std::forward<int>(vec2.at(i)));
    return vec1;
}

int main()
{
    std::vector<int> vec1{ 1,2,3,4,5 };
    std::vector<int> vec2{ 2,3,4,5,6 };
    std::vector<int> vecResult;
    vecResult = std::move(vec1) + std::move(vec2);
    for (const auto& itr : vecResult)
        std::cout << itr …
Run Code Online (Sandbox Code Playgroud)

c++ operator-overloading sfinae c++11 c++14

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

标签 统计

c++ ×2

c++11 ×2

algorithm ×1

c++14 ×1

operator-overloading ×1

sfinae ×1