C++ cout向量<;向量<;int>&燃气轮机;更简洁 #包括 #包括 #包括 #包括 使用名称空间std; int main() { 向量v1={1,2},{3,4}; 向量v2={5,6},{7,8}; 对于(int i=0;i

C++ cout向量<;向量<;int>&燃气轮机;更简洁 #包括 #包括 #包括 #包括 使用名称空间std; int main() { 向量v1={1,2},{3,4}; 向量v2={5,6},{7,8}; 对于(int i=0;i,c++,c++11,c++14,C++,C++11,C++14,cout向量<;向量<;int>&燃气轮机;更简洁 #包括 #包括 #包括 #包括 使用名称空间std; int main() { 向量v1={1,2},{3,4}; 向量v2={5,6},{7,8}; 对于(int i=0;i

cout向量<;向量<;int>&燃气轮机;更简洁
#包括
#包括
#包括
#包括
使用名称空间std;
int main()
{
向量v1={1,2},{3,4};
向量v2={5,6},{7,8};
对于(int i=0;i一种方法是使用std::ostream\u迭代器

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

int main()
{
    vector<vector<int>> v1 = { {1, 2}, {3, 4} };
    vector<vector<int>> v2 = { {5, 6}, {7, 8} };
    for (int i = 0; i < v1.size(); ++i)
    {
        transform(v1[i].begin(), v1[i].end(), v2[i].begin(), v1[i].begin(), plus<int>());
    }
    for (const auto& i : v1)
    {
        for (const auto& j : i)
        {
            cout << j << " ";
        }
        cout << endl;
    }
}
for(const auto&i:v1){
使用V=std::decage::type::value\u type;
std::copy(i.begin()、i.end()、std::ostream_迭代器(std::cout,“”);

一种方法是使用std::ostream\u迭代器

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

int main()
{
    vector<vector<int>> v1 = { {1, 2}, {3, 4} };
    vector<vector<int>> v2 = { {5, 6}, {7, 8} };
    for (int i = 0; i < v1.size(); ++i)
    {
        transform(v1[i].begin(), v1[i].end(), v2[i].begin(), v1[i].begin(), plus<int>());
    }
    for (const auto& i : v1)
    {
        for (const auto& j : i)
        {
            cout << j << " ";
        }
        cout << endl;
    }
}
for(const auto&i:v1){
使用V=std::decage::type::value\u type;
std::copy(i.begin()、i.end()、std::ostream_迭代器(std::cout,“”);

当然,你可以总是重载
操作符,你可以编写
ostream&operator好的,所以我把内部循环改为使用
ostream\u迭代器。谢谢!:)我不想写任何新的或重载操作符。我把这个添加到原来的帖子中。旁白:我会写创建一个包含第一个循环主体的函数
vector elementwise_plus(const vector&,const vector&)
,然后将该循环替换为
变换(v1.begin(),v1.end(),v2.begin(),v1.begin(),elementwise_plus);
(或类似于
,用于每个
和lhs中的非常量引用)你真的应该避免
使用名称空间std
-这是一个坏习惯,当你不期望它的时候。习惯于使用名称空间前缀(
std
故意很短),或者只将您需要的名称导入到最小的合理范围内。实际上,不是外部向量,而是内部向量。当然,您可以始终重载
操作符。您可以编写
ostream&操作符。好的,所以我将内部循环改为使用
ostream\u迭代器。谢谢!:)我不想写任何新的或新的内容erload运算符。我将此添加到原始帖子中。旁白:我将编写一个包含第一个循环体的函数
vector elementwise_plus(const vector&,const vector&)
,然后用
transform(v1.begin(),v1.end(),v2.begin(),v1.begin(),elementwise_plus)替换该循环;
(或类似于
对于每个
和lhs中的非常量引用)您确实应该避免
使用名称空间std
-这是一个坏习惯,当您不期望它时。习惯使用名称空间前缀(
std
故意非常短),或者只将您需要的名称导入到最小的合理范围中。您不需要std::decay来编写示例代码,但使用您的代码,您可以只迭代整数?我不太理解这一行。您能解释一下吗?@bencemeszaros
decltype(I)
std::vector const&
它没有嵌入类型
value\u type
。因此
std::decay
必须删除
const&
。谢谢。我不熟悉
std::decay
decltype
。你知道什么练习来熟悉它们吗?@bencemeszaros Here:/你不知道ed std::使用示例代码进行衰变是正确的,但是使用您的代码,您可以只对整数进行迭代?我不太理解这一行。您能解释一下吗?@bencemeszaros
decltype(I)
std::vector const&
它没有嵌入类型
value\u type
。因此
std::decay
必须删除
const&
。谢谢。我不熟悉
std::decay
decltype
。你知道什么练习来熟悉它们吗?@bencemeszaros这里:/