std::vector a;
std::vector b;

a = b; //error
在这里插入图片描述
这里只是举个例子,如果vector中套了好几层东西 里面有个const, 看报错 想不到是这个原因

为啥这样加个const 就报错呢??
和vector 有关系?
其实没关系

看一个例子 里面就能理解了

命名就是瞎的键盘了 凑合看吧
在这里插入图片描述

明白了吧, 你写了const 就不能赋值了,
为啥拷贝构造可以呢?
因为使用了初始化列表 如果也是用赋值的形式 也是报错的

知识 +1 ,你学到了吗?

使用 vector ,要添加其头文件#include< vector >。   1. vector 的初始化及 赋值 ,比如: std :: vector < int > nVec;     // 空对象 std :: vector < int > nVec(5,-1);  // 创建了一个包含5个 元素 且值为-1的 vector std :: vector < std ... template <class T,class Alloc = allocator <T> > class vector ; //通用模板 vector 是表示可以改变大小的数组的序列 容器 。   就像数组一样, vector 使用连续存储空间存储 元素 ,这意味着它们的 元素 也可以使用指向其 元素 的指针进行偏移来访问,并与数组一样高效。但与数组不同的是, v. 初学 C++ ,我试着写一个贪吃蛇游戏,代码如下:#include#include #include #include #include#includeusing namespace std ;class Snake{friend void displaySnake(Snake &s);public:using ssbody = pair, string>;Snake() = defaul... const vector vec(10) 是不是指 const 是针对 vector 的?也就是说 vector 的大小不能变了但是里边 元素 的值可以改变? 如果要定义一个保存 const int 对象的 vector 是不是这样定义: vector vec(10) const vector vec(10) vector vec(10) 分别对应的迭代器是什么? std :: vector v1{42}; // vector < int > std :: vector v2{v1}; // vector < int > not vector < vector < int >> std :: vector v3 = v1; // vector < int > #include < vector > #include <type_traits> template <typename ... void split( const std ::string &delimiters, const std ::string &source, std :: vector < std ::string> &result) { size_t prev_pos = 0, pos = 0; result.resize(0); pos = source.find_first_of(delimiters, po 今天在写 c++ 程序时遇到了一个 问题 ,声明了一个 vector 对象 std :: vector < const std ::string> str_vec;结果程序 编译 报错: 此错误主要是 vector 中声明了 const 类型,此处 vector <T>中的T应该是拷贝 赋值 的(CopyAssignable),因此不能使用 const 类型。以下代码则会报上述错误#include <iostream> 2 #inc 插入 元素 容器 中的指定位置 // 在 pos 前插入 value iterator insert( iterator pos, const T& value ); ( C++ 11 前) iterator insert( const _iterator pos, const T& value ); ( C++ 11 起) iterator insert( const _iterator pos, T&& value ); ( C++ 11 起) //在 pos 前插入