some different between array and Vector(C++) when trying to swap two element

   Swap two number is most common function used in program,  it is very easy to write the following function:

1. by reference

    void swap (int a, int b)

    {

             int   temp = a;   a = b;  b = temp;

   }

2. by value

   void swap(int &a, int &b)

   {

         int temp = a;  a = b; b = temp; 

    } 

   But when you try to swap two elements of an arrray, function 2 can do this thing, but it can't work when you try to swap two element of a vector:

    like following code:

 

swap(a[0], a[1]);

printArray(a, (

vector<

swap(ivec[0], ivec[1]);

printVector(ivec);

you will find int a[] is success, but vector<int> ivec is failed. what is the problem?

int a[] = {12, 33, 122, 54, 2, 44, 98}; sizeof (a) / sizeof ( int ) - 1)); int > ivec(a, a + 7);
Serialization failure with the error code 1213 typically occurs in database systems like MySQL when there's a deadlock detected during a transaction. A deadlock happens when two or more processes are waiting for each other to release resources they hold, creating a circular dependency that cannot be resolved without manual intervention. The message suggests that one of the transactions is unable to proceed because it can't acquire a lock on the data it needs, while another transaction has already locked the same resource, causing an impasse. To resolve this issue: 1. **Retry Transaction**: You may try restarting the transaction by rolling back any changes made and then retrying, hoping that the deadlock situation resolves itself due to different execution order. 2. **Check Locks**: Analyze your SQL queries to ensure no long-running SELECT statements with LOCK IN SHARE MODE, which can cause deadlocks if not handled properly. 3. **Optimize Query Execution**: Review your indexing strategy and query logic to minimize blocking operations and reduce the likelihood of deadlocks. 4. **Database Configuration**: Configure your database server's settings for deadlock detection and resolution, such as increasing the `innodb_deadlock_detect` parameter or setting a higher `innodb_lock_wait_timeout`. 5. **Deadlock Detection Tools**: Use tools like MySQL's `SHOW ENGINE INNODB STATUS` command or monitoring software to identify and resolve deadlocks manually. If the problem persists frequently, you might need to investigate the application's concurrency patterns and improve its design to avoid deadlocks altogether.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值